写在前面:
本系列文章收录:CAU计算机类公选课《Python语言程序设计》的课堂讲义
课程时间为:2022~2023学年秋季
供各位小白参考~
元组(Tuple)
特点:
内置的存储有序数据的结构。
一系列特定顺序排列的元素组成。
可存储不同类型的数据。
元组是不可改变的,创建后不再做任何修改操作。
从形式上来说,元组的所有元素都放在“()”中,两个相邻元素间用“,”分隔。
从内容上来说,可以是数值型、字符串、列表、元组等,同一个元组中,元素的类型可以不同。
元组的作用:作为参数传递给函数调用。
1.元组的创建与删除
(1)使用赋值运算符直接创建元组
元组名 = (元素1,元素2,…,元素n)
在Python中,虽然元组是使用一对小括号把所有的元素括起来,但实际上,小括号不是必须的。可以将一组值用逗号隔开,即可。
元组名 = 元素1,元素2,…,元素n
注意:如果要创建一个元组,即使只有一个元素,也需要在定义元组的时候,在元素的后面加一个“,”。
(2)创建空元组
元组名 = ()
(3)借助range()创建数值型元组
tupe(range(start,end,step)
(4)删除元组
del 元组名
【示例】元组的定义。
tuple_hobby_1 = ('sing','draw','dance','sleep','reading')
print(type(tuple_hobby_1))
tuple_hobby_2 = 'sing','draw','dance','sleep','reading'
print(type(tuple_hobby_2))
tuple_season_1 = ('Spring')
print(type(tuple_season_1))
tuple_season_2 = ('Spring',)
print(type(tuple_season_2))
tuple_empty = ()
print(type(tuple_empty))
del tuple_empty
# print(tuple_empty)
运行结果:
<class 'tuple'>
<class 'tuple'>
<class 'str'>
<class 'tuple'>
<class 'tuple'>
2.元组的常见操作
len(tup) 返回元组的元素个数
max(tup) 返回元组中元素最大的值。
min(tup) 返回元组中元素最小的值。
tuple(tup) 将列表转换为元组。
【示例】元组的常见操作。
# 元组的整体输出
tuple_hobby = ('sing','draw','dance','sleep','reading')
print(tuple_hobby)
# 通过索引,获取元组部分元素
print(tuple_hobby[0],tuple_hobby[3],tuple_hobby[-1])
# 通过切片,获取元组元素
print(tuple_hobby[:3])
# 使用for和enumertate()函数遍历元组的元素
for index,value in enumerate(tuple_hobby):
print(index,'\t',value)
# 通过值,查看索引
print(tuple_hobby.index('sleep'))
# 查看元素的个数
print(tuple_hobby.count('draw'))
运行结果:
('sing', 'draw', 'dance', 'sleep', 'reading')
sing sleep reading
('sing', 'draw', 'dance')
0 sing
1 draw
2 dance
3 sleep
4 reading
3
1
3.元组与列表的区别
都属于序列
区别:
(1)列表属于可变序列,元组属于不可变序列。
(2)元组不能实现对元素的添加、删除和修改。
(3)
(4)元组比列表的访问和处理的速度快。
(5)列表不能作为字典的键,元组可以的。
转换:
tuple()
list()
字典
映射
字典是可变序列,无序,保存的内容是以“键:值”的形式存放。
键是唯一的,而值是可以有多个。
字典特点:
(1)通过键来访问元素,而不是索引。
(2)字典是任意对象的无序集合。
(3)字典是可变的,可以嵌套。
(4)键必须唯一,不可变。
字典的创建:
字典名 = {key1:value1,key2:value2,…,keyn:valuen}
【示例】字典的创建。
dict_school = {'cau':'中国农业大学','pku':'北京大学','tsinghua':'清华大学','fudan':'复旦大学'}
print(dict_school)
dict_empty = {}
print(type(dict_empty))
# 通过zip()函数创建字典
key_en = ['cau','pku','tsinghua','fudan']
value_cn = ['中国农业大学','北京大学','清华大学','复旦大学']
dict_list_school = dict(zip(key_en,value_cn))
print(dict_list_school)
schoollist = dict(cau='中国农业大学',pku='北京大学',tsinghua='清华大学')
print(schoollist)
运行结果:
{'cau': '中国农业大学', 'pku': '北京大学', 'tsinghua': '清华大学', 'fudan': '复旦大学'}
<class 'dict'>
{'cau': '中国农业大学', 'pku': '北京大学', 'tsinghua': '清华大学', 'fudan': '复旦大学'}
{'cau': '中国农业大学', 'pku': '北京大学', 'tsinghua': '清华大学'}
2.字典元素的访问与遍历
字典元素的访问,通过键访问。
通过items()遍历。【示例】字典元素的访问与遍历。
dict_school = {'cau':'中国农业大学','pku':'北京大学','tsinghua':'清华大学','fudan':'复旦大学'}
print(dict_school['pku'])
print("所在的大学:",dict_school.get('cau','此大学不存在'))
# 通过items()方法
for item in dict_school.items():
print(item)
for key,value in dict_school.items():
print(key,'\t',value)
运行结果:
北京大学
所在的大学: 中国农业大学
('cau', '中国农业大学')
('pku', '北京大学')
('tsinghua', '清华大学')
('fudan', '复旦大学')
cau 中国农业大学
pku 北京大学
tsinghua 清华大学
fudan 复旦大学
3.字典元素的常见操作
(1)增加字典元素
dict_name[key]=value
(2)删除字典元素
del dict_name
(3)清空字典元素
dict_name.clear()
(4)字典元素的修改
用新“值”替换原来该“键”的值。
(5)字典元素的查找
1)通过键-值对的方式查找。
2)通过get()、keys()、values()以及items()函数查找。
【示例】字典元素的操作。
dict_school = {'cau':'中国农业大学','pku':'北京大学','tsinghua':'清华大学','fudan':'复旦大学'}
print(dict_school)
dict_school['sju']='上海交通大学'
print(dict_school)
del dict_school['fudan']
print(dict_school)
print(dict_school.pop('sju'))
print(dict_school)
dict_school['cau'] = '中国农大'
print(dict_school)
dict_school.clear()
print(dict_school)
运行结果:
{'cau': '中国农业大学', 'pku': '北京大学', 'tsinghua': '清华大学', 'fudan': '复旦大学'}
{'cau': '中国农业大学', 'pku': '北京大学', 'tsinghua': '清华大学', 'fudan': '复旦大学', 'sju': '上海交通大学'}
{'cau': '中国农业大学', 'pku': '北京大学', 'tsinghua': '清华大学', 'sju': '上海交通大学'}
上海交通大学
{'cau': '中国农业大学', 'pku': '北京大学', 'tsinghua': '清华大学'}
{'cau': '中国农大', 'pku': '北京大学', 'tsinghua': '清华大学'}
{}
【示例】字典元素的查找。
dict_school = {'cau':'中国农业大学','pku':'北京大学','tsinghua':'清华大学','fudan':'复旦大学'}
print(dict_school.get('pku'))
print(dict_school.get('cau1','中国农大'))
print(dict_school.keys())
print(dict_school.values())
print(dict_school.items())
运行结果:
北京大学
中国农大
dict_keys(['cau', 'pku', 'tsinghua', 'fudan'])
dict_values(['中国农业大学', '北京大学', '清华大学', '复旦大学'])
dict_items([('cau', '中国农业大学'), ('pku', '北京大学'), ('tsinghua', '清华大学'), ('fudan', '复旦大学')])
集合
用于保存不重复的元素,有可变集合和不可变集合两种。
在形式上,集合的所有元素都放在一对大括号中,两个相邻的元素可使用“,”隔开。
集合优势:去重。
集合只有值。
1.集合的创建
(1)通过{}直接创建
setname = {元素1,元素2,…,元素n}
(2)使用set()创建
【示例】集合的创建示例。
set_hobby = {'sing','draw','dance','sleep','reading'}
print(type(set_hobby),set_hobby)
str1 = '喜迎二十大'
print(set(str1))
运行结果:
<class 'set'> {'dance', 'sleep', 'reading', 'sing', 'draw'}
{'大', '二', '十', '喜', '迎'}
2.集合的常见操作
(1)添加元素
add()
(2)追加元素
update()
(3)删除元素
discard()方法 删除集合中的指定数据,如果数据不存在,也不报错。
pop()和remove()方法 删除一个元素。
clear() 清空集合。
(4)查找元素
在集合中用in判断数据在集合序列;not in 判断数据不在集合里面。
【示例】集合的常见操作。
set_hobby = {'sing','draw','dance','sleep','reading'}
set_hobby.add('eating')
print(set_hobby)
set_hobby.update('playing')
print(set_hobby)
set_hobby.remove('eating')
print(set_hobby)
set_hobby.pop()
print(set_hobby)
print('sleep' in set_hobby)
运行结果:
{'sleep', 'sing', 'dance', 'reading', 'eating', 'draw'}
{'sleep', 'p', 'y', 'n', 'i', 'sing', 'g', 'dance', 'l', 'reading', 'a', 'eating', 'draw'}
{'sleep', 'p', 'y', 'n', 'i', 'sing', 'g', 'dance', 'l', 'reading', 'a', 'draw'}
{'p', 'y', 'n', 'i', 'sing', 'g', 'dance', 'l', 'reading', 'a', 'draw'}
False
容器中的公共操作
1.+ 字符串、列表和元组
功能:连接
【示例】
str1 = '不忘初心'
str2 = '牢记使命'
print(str1 + str2)
list1 = list(range(0,10,2))
list2 = list(range(1,10,2))
print(list1 + list2)
运行结果:
不忘初心牢记使命
[0, 2, 4, 6, 8, 1, 3, 5, 7, 9]
2.*
功能:复制
3.in not in
功能:判断是否存在
4.len() del() max() min()
5.类型转换
tuple()
list()
set()
【上机实验】
【元组的应用】利用元组的操作,模拟评委打分,打分标准:去掉一个最高分和一个最低分,求选手的平均成绩。
tup_score= (98,87,95,89,97,96,83)
【字典的应用】某学校要进行全国计算机等级考试,在Python语言程序设计上机考核环节,需要随机生成10个计算机号,计算机编号以6602020开头,后面3位依次是 (001,002,003,010)。请利用字典操作,生成计算机编号,并默认每个卡号的初始密码为"python"。其中,输出计算机编号和密码信息,格式如下:
计算机编号 登录密码
6602020001 python
【集合的应用】某公司人力资源部想在单位做一项关于工作满意度问卷调查。
为了保证样本选择的客观性,他将公司全体人员按顺序编号,先用计算机生成了N个1~200之间的随机整数(N<=200),N是用户输入的,对于其中重复的数字,只保留一个,把其余相同的数字去掉,不同的数对应着不同的员工编号,然后再把这些数从小到大排序,按照排好的顺序去找员工做调查,请你协助人力资源部的负责人完成“去重”与排序工作。