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