元组和字典
元组
1. 元组tuple就是不可变的列表 - 不支持增删改
元组是容器型数据类型,将()作为容器的标志,元素之间逗号隔开:(元素1, 元素2,元素3,…)
元组是有序的(支持下标操作)
1)空元组
tuple1 = ()
print(type(tuple1))
2)单个元素的元组
list1 = [10] # 单个元素列表
tuple2 = (10,)
3)多个元素的元组
a. 变量 = (元素1, 元素2, 元素3,…)
b. 变量 = 元素1, 元素2,元素3,…
2. 获取元组中的元素
1)元组支持列表获取元素的方法
a. 获取单个元素 - 元组[下标]
b. 切片 - 元组[开始下标:结束下标:步长]
c. 遍历 - for 变量 in 元组: / for 下标 in range(len(元组)):
2)其他方式(同样适用于列表)
a. 变量1,变量2,变量3,… = 元组 (变量个数与元组元素保持一致)
tuple3 = 10, 20, 30
x, y, z = tuple3
b. 变量1,变量2,变量3,… = 元组 (变量个数小于元组元素个数,并且有且只有一个变量前有*
a, b, *c, d, e = 1, 2, 3, 4, 5, 6, 7, 8, 9
print(a, b, c, d, e)
print(type(c))
print(*c)
补充:*打包\解包功能
3.列表相关操作全部适用于元组
字典基础
1. 字典(dict) - 同时保存多个数据,且数据意义不同
#字典是容器型数据类型,将{}作为容器标志,多个元素之间逗号隔开(字典元素是键值对):{键1:值1,键2:值2}
字典是可变的,无序的(不支持下标操作)
字典中元素:键值对
键 - 不可变、唯一性(一般是字符串)
值 - 任何类型的数据,可重复
字典保存的是值,键是对值进行区分和区别
空字典
2. 获取字典的值
1)获取单个元素的值
a. 字典[key] - 获取字典中指定key对应的值(如果不存在,报错)
b. 字典.get(key) - 获取字典中指定key对应的值(如果不存在,返回None)
c. 字典.get(key, 默认值) - key不存在,返回默认值
2)遍历
a. 掌握和使用的遍历方法(效率最高)
for 变量 in 字典:
循环体
注意:遍历字典中所有key
dict1 = {123: 45, '456': 78, '789': 90}
for x in dict1:
print(x, dict1[x])
b. 其他两种情况
for 变量 in 字典.values():
循环体
注意:遍历字典中所有值(效率低)
c. 其他两种情况
for 变量1, 变量2 in 字典.items():
循环体
for x, y in dict1.items():
print(x, y)
应用
students = [{'name': '姓名1', 'age': 23, 'telephone': '13756784455', 'score': 89},
{'name': '姓名2', 'age': 17, 'telephone': '13758888455', 'score': 98},
{'name': '姓名3', 'age': 18, 'telephone': '13711114455', 'score': 76},
{'name': '姓名4', 'age': 16, 'telephone': '13756789999', 'score': 66}]
count = 0
for stu in students:
if stu['age'] < 18:
count += 1
print(count)
字典元素的增删改
1. 增/改
语法1:字典[key] = 值
说明:key存在(改),修改制定key对应的值,key不存在(增),增加键值对’key:值’
语法2:字典.setdefault(键, 值) - 添加键值对(不存在修改功能)
2. 删
1)del
del 字典[key] - 删除指定key对应键值对(key不存在,报错)
2)pop
字典.pop(key) - 取出字典中指定key对应的值,并且返回被取出的值
字典相关操作和方法
1.字典相关操作
字典不支持加法和乘法运算
1)比较运算
字典只支持比较相等,不支持比较大小
2)in 和 not in
key in 字典 - 判断字典中是否存在指定的key
key not in 字典 - 判断字典中是否不存在指定的key
3)相关函数
a. len(字典) - 统计键值对个数
b. dict(数据) - 将数据转换为字典
数据要求:1.容器型数据 2.数据元素中有且只有两个元素 3.数据元素中第一个元素是不可变的
c.字典转换成其他数据类型
bool(字典) - 空字典转换为False,其他为True
list(字典) - 将字典的key作为列表的元素
tuple(字典) - 将字典的key作为元组的元素
2.相关方法
1)字典.clear() - 清空字典
2)字典.copy() - 复制字典并产生新的字典
3)dict.fromkeys()
dict.fromkeys(序列) - 创建新字典,key是序列中元素,值为None
dict.fromkeys(序列, 值) - 创建新字典,key是序列中元素,值为指定值
4)item, keys, values
字典.keys() - 获取字典中所有key,返回一个容器(容器不是列表)
字典.values() - 获取字典中所有值,返回一个容器(容器不是列表)
字典.items() - 获取字典中所有键值对,返回一个容器,容器中元素是元组,每个元组对应一个键值对(容器不是列表)
5)字典.update(序列) - 用序列生成的字典更新原字典(存在修改,不存在添加)
集合
1.集合(set) - 容器型数据,将{}作为容器的标志,元素间逗号隔开:{元素1, 元素2, 元素3,…}
集合是可变的(支持增删改)、无序的
集合中元素不可变并且唯一,列表不能作为集合的元素
空集合
2.集合中元素的增删改查 - 集合无法修改元素
1)查
for 变量 in 集合:
循环体
2)增
a. 集合.add(元素) - 集合中添加元素
b. 集合.update(序列) - 序列中元素全部添加到集合
3)删
a. 集合.remove(元素) - 删除集合中元素(元素不存在报错)
b. 集合.discard(元素) - 删除集合中元素(元素不存在不报错)
3.数学集合运算
python中的集合支持数学集合运算:&(交集)、|(并集)、-(差集)、^(对称差集)、>/<(判断真子集)