第七讲 元组&字典&集合
1.元组简介
1.1 元组 tuple
元组是一个不可变序列。
一般情况下我不希望这个数据改变的时候就用元组,其余情况都用列表。
- 如果元组不是空元组,它里面至少得有一个。
1.2 元组的解包
- 元组解包指将元组当中的每一个元素都赋值给一个变量。
- 在对一个元组解包的时候,变量的数量要和元组中元素的数量保持一致。
- 如果变量和元素不一致,也可以在变量前面加上一个 * 。这样会获取元组中剩余的元素。
- 以列表形式返回。
再举一个例子:
那列表可不可以呢?
2.字典
2.1 字典 dict
- 数据结构 映射(mapping)
- 字典的作用其实和列表类似,都是用来存储对象的容器。
- 列表存储数据的性能非常好,但是查询数据的性能很差。字典正好相反。
- 在字典当中每一个元素都有唯一的一个名字 通过这个名字可以快速查询到指定的元素。
- 这个唯一的名字我们一般称之为 键(key) 通过key我们可以查询value值。
- 所以字典我们也称之为键值对(key-value)。
- 每个字典当中可以有多个键值对,每一个键值对我们可以称之为一项(item)。
- 语法:{key:value, key:value…}
字典中的键是不能重复的,如果重复后面的会替换前面的。
2.2 遍历字典
- d.keys() 该方法返回的是一个序列,保存的是字典中所有的键。
- d.values() 该方法返回的是一个序列,保存的是字典中的值。
- d.items() 该方法会返回字典中所有的项。它返回的也是一个序列,这个序列当中包含有双值子序列。双值就是字典中的key-value。
2.3 浅复制 copy()
- 浅复制只会复制字典的本身,如果字典中还有个字典,是不会被复制的。
- 复制以后的对象,和原对象是独立的。修改一个不会影响另一个。
3.集合
3.1 集合 set
- 集合和列表非常相似。
- 不同点:
1 集合中只能存储不可变对象
2 集合中存储的对象是无序的
3 集合中不能出现重复的元素
3.2 set()函数
- set()可以将序列和字典转换为集合。
- 使用set函数将字典转换为集合的时候,只会包含字典中的键。
- 如果需要索引,必须强制转换其类型。
课堂复习
- 1.元组简介:
tuple
不可变序列
元组不是空的,至少得有一个,
元组的解包,将元组当中的每一个元素赋值给变量 - 2.字典
映射 mapping
字典的特点:查询性能很好,存储性能相对较差。
字典也称之为key-value的结构
字典的使用:dict() get(key.默认值) update() del popitem() pop(key.默认值) copy()
遍历字典:d.keys() d.values() d.items() - 3.集合
不同点 列表:集合只能存储不可变对象、集合存储的对象是无序的、集合不能出现重复元素
set()函数可以来创建集合