1. 元组
- 元组是⼀个不可变序列。一般当这个数据不改变的时候,就用元组。其余情况都用列表。
- 创建元组:使用 () 来创建元组
- 元组表现形式为:tuple
- 元组不是空元组⾄少有⼀个逗号(,) 当元组不是空元组时括号可以省略。
- 元组解包: 指将元组当中的每⼀个元素都赋值给⼀个变量。
· 如元素比较多,变量比较少的情况;可在一个变量前面加“ * ” 来解决。
2. 字典
2.1 字典的基本介绍
- 字典属于⼀种新的数据结构称为映射(mapping)。
- 字典的作⽤和列表类似,都是⽤来存储对象的容器。
- 列表存储数据的性能好,但是查询数据的性能比较差,字典正好与之相反,字典的查询数据的性能好。
- 在字典中每⼀个元素都有唯⼀的名字,通过这个唯⼀的名字可以找到指定的元素。
- 这个唯⼀的名字我们称之为key,通过key可以快速查询值(value)。
- 字典我们也称之为键值对(key-value) 结构
- 每个字典中都可以有多个键值对,⽽每⼀个键值对我们称其为⼀项(item)
- 创建⼀个有数据的字典,语法:{key:value,key:value…}
- 字典的值可以是任意对象,字典的键可以是任意的不可变对象(int str bool tuple…)
- 字典的键是不能重复的,如果出现重复的后⾯的会替换前⾯的。
2.2 字典的使用
- dict() 函数来创建字典
- · 双值子序列:
· 双值序列:序列中有2个值,如:[3,4],‘m,d’,(‘k’,6);
· 子序列:如果序列中的元素也是序列,就称这个元素为子序列,如:[(3,4),(‘j’,3)]。 - len() 获取字典中键值对的个数
- in 检查字典中是否包含指定的键
- not in 检查字典中是否不包含指定的键
- .get(key[,default]) 根据键来获取字典的值,当获取不到值的时候会返回默认值(None)。第⼆个参数可以指定⼀个默认值,当获取不到值的时候会返回默认值
- update() 将其他字典的key-value添加到当前的字典当中,如果有重复的key,后面的会替换前面的
- del 删除字典中的key-value
- popitem() 随机删除字典中的一个key-value,一般都会删除字典最后的⼀个。这个⽅法是有返回值的。删除之后它会将删除的key-value作为返回值以元组形式返回
- pop(key[,default]) 根据key删除⾃定中的value。第⼆个参数可以指定⼀个默认值,当获取不到值的时候会返回默认值
- copy() ⽅法⽤来对字典进⾏浅复制
· 注意:
- 浅复制只会复制字典本身,如果字典中还有个字典是不会被复制的
- 这个值也可以是个可变对象,这个对象也不会被复制
· 我们主要可以通过3种⽅式对字典进⾏遍历
- keys() 该⽅法返回字典所有的key
- values() 该⽅法返回⼀个序列,序列中保存有字典的值
- items() 该⽅法会返回字典中所有的项。它返回⼀个序列,序列中包含有双值⼦序列 双值分别是 字典中的key和value
4.1 集合简介
- 集合和列表非常相似,表现形式为:set
- 不同点 :
· 集合只能存储不可变对象
· 集合中存储的对象是无序的
· 集合不能出现重复元素 - 使用{}来创建集合,{}中有添加元素的就是集合,没有添加元素的为字典
- set() 可以通过set()来将序列和字典转换成集合,如有用此方法把字典转换成集合,只会包含字典中的key
4.2 集合的使用
- in / not in 检查集合中的元素
- len() 使⽤len()来获取集合中元素的数量
- .add() 像集合中添加元素
- .update() 将⼀个集合中的元素添加到另⼀个集合当中
- .pop() 随机删除集合中的⼀个元素,⼀般是删除最后⼀个元素
- · 有返回值
- remove() 删除集合中指定的元素
- clear() 清空集合
4.3 集合的运算
- ’&’ 交集运算,含义:相交的部分
- ’|’ 并集运算,含义:合并后的部分
- ’-’ 差集运算,含义:相减后首集合剩余不相交的部分
- ’^’ 亦或集,含义:不相交的部分
- ’<=’ 检查⼀个集合是否是另⼀个集合的⼦集,含义:一个集合中的元素包含另一个集合中所有的元素,或等于另一个集合,另一个集合就是这个集合的子集。
- ’<’ 检查⼀个集合是否是另⼀个集合的真⼦集,含义:一个集合中包含另一个集合,且含有另一个集合中没有的元素,另一个集合就是这个集合的真子集。
- ’>=’ 检查⼀个集合是否是另⼀个集合的超集,含义:一个集合中的元素包含另一个集合中所有的元素,或等于另一个集合,这个集合就是另一个集合的超集。
- ’>’ 检查⼀个集合是否是另⼀个集合的真超集,含义:一个集合中包含另一个集合,且含有另一个集合中没有的元素,这个集合就是另一个集合的真超集。
- 不可变对象,如:字符串,元组,int,float 等,数值类型是不可变的
- 可变对象,如:列表,字典
- 每个对象当中都保存了3个数据:
1. id(标识)
2. type(类型)
3. value(值) - 列表是一个可变对象
a = [1,2,3] - a[0] =10(改对象,改对象里面的值)
- 这个操作是通过变量来修改对象里面的值,不会改变变量指向的对象
- a = [4,5,6](改变量)
- 这个操作是在给变量重新赋值,会改变变量所指向的对象