day8-元组字典和集合
一、元组
1. 什么是元组(tuple)
- 容器型数据类型
- 特点:不可变(不支持增删改)、有序(支持下标操作)
- 将()作为容器标志,多个元素用,隔开。元素的要求和列表一样
2. 查询 - 和列表一样
- 注意:元组切片的结果还是元组
3. 相关运算 - 和列表一样
- +, *, ==, !=, in/not in, len(), max(), min(), sum()
- tuple(序列) - 将数据转换成元组,所有的序列都可以转换成元组
4. 元组的特殊操作
-
单个元素的元组:在只有一个元素的元组中必须加逗号
tuple1 = (10,)
如果一个元组有多个元素,元组的括号可以省略
-
获取元素,通过让变量的个数和元组中的元素的个数保持一致来分别获取元组中的元素的值
tuple1 = (1, 2, 3) x, y, z = tuple print(x, y, z)
-
可以通过在某一个变量前加*来获取不带*的变量取完后剩下的所有元素
注意:带*的变量只能有一个,而且这个变量的结果是一个列表
tuple2 = ('小明', 20, 3, 4, 5, 6, 7, 8) name, age, *num = tuple2
二、字典
1. 什么是字典(dict)
- 字典是容器型数据类型
- 特点:可变(支持增删改)、无序(不支持下标操作)
- 字典容器标志是{};多个元素用,隔开
2. 字典中的元素
- 字典中的元素是键值对,以'key:value'的形式存在,而且key和value必须成对出现
- 键(key) - 不可变的数据,并且是唯一的(一般使用字符串作为键)
- 值(value) - 没有要求(和列表元素要求一样)
- 注意:字典保存数据,真正要存储的是值,键只是为了对不同的值进行区分而存在的
3. 查询 - 获取字典键值对中value的值
-
获取单个值
- 字典[key]:获取字典中指定key对应的值(key不存在会报错)
- 字典.get(key):获取字典中key对应的值(key不存在不会报错而是返回None)
- 字典.get(key, 默认值):获取字典中key对应的值(key不存在不会报错而是返回默认值)
-
遍历获取值
for 变量 in 字典:
循环体
变量取到的是字典中所有的key
4. 字典相关操作:增/改, 删
- 增 - 添加键值对;改 - 修改某个key对应的值
- 字典[key] = 值 - 当key不存在就是增加,当key存在就是修改
- 删除 - 删除键值对
- del 字典[key] - 删除字典中指定key对应的键值对
- 字典.pop(key) - 取出字典中指定key对应的值,返回取出的值
5. 字典相关运算
- 比较相等:==, !=
- in/not in:key in 字典 - 判断key值是否存在字典中
-
len()
:获取字典的长度 -
dict()
:转换成字典类型- 能转换成字典的数据:本身必须是一个序列,序列中元素还是一个小序列,而且小序列中必须只有两个元素
- 注意:将字典转换成列表、元组、集合时将字典的key作为元素
6. 字典相关函数
-
字典.clear()
- 清空字典 -
字典.copy()
- 复制字典中所有的键值对,产生一个新的字典 -
dict.fromkeys(序列, 值)
- 创建一个字典,将序列中元素作为key,值作为value,返回一个字典- 如果没有值,则返回None
-
items()
- 同时获取字典中所有的key和value,以序列的形式返回,序列中的元素是(key, value)元组 -
keys()
- 获取字典中所有的key,以序列的形式返回 -
values
- 获取字典中所有的value,以序列的形式返回 -
字典.setdefault(key, value)
- 添加键值对,key不存在时添加,key存在时不修改 -
字典.update(序列)
- 用序列去更新字典,这个序列必须是字典或可以转换成字典的序列
三、集合
1. 什么是集合(set)
- 容器型数据类型
- 特点:可变(支持增删改)、无序(不支持下标操作)
- 将{}作为容器的标志;里面的元素用,隔开
- 空集合:set()
2. 集合中的元素
- 元素不可变:列表、字典、集合不能作为集合的元素
- 元素唯一:(自带去重功能)利用元素的唯一性去重
3. 集合的增删改查
- 查询 - 集合不能单独取出一个元素,只能通过遍历一个一个的取出所有的元素
- 增加
-
集合.add()
- 在集合中添加一个元素 -
集合.update(序列)
- 将序列中的元素添加到集合中(序列中的元素必须不可变)
-
-
删除 - 集合.remove(元素)
:删除集合中指定的元素 - 改 - 集合不支持改操作
4. 数学集合运算
- 并集(|):将两个集合中的元素合并并产生一个新的集合
- 交集(&):将两个集合公共的元素取出来产生一个新的集合
- 对称差集(^):获取两个集合除了公共部分剩下的部分
- 差集(-):(集合1-集合2)集合1除了和集合2公共的部分剩下的元素
- 集合1 > 集合2:判断集合1中是否包含集合2
- 集合1 < 集合2:判断集合2中是否包含集合1