(一)元组
元组基本介绍
- 元组表现形式tuple
- 元组是⼀个不可变序列(⼀般当我们希望数据不改变时,我们使⽤元组,其它情况下基本都⽤列表)
- 使⽤()创建元素
- 如果元组不是空元组,⾄少有⼀个逗号(,) 当元组不是空元组时,括号可以省略
- 元组解包,指将元组当中的每⼀个元素都赋值给⼀个变量
- 对元组解包时,变量的数量必须和元组的数量相对应,如果变量和元组不对应时,在变量前面加上*号(且 * 号只能有一个),这样变量就会将获取到的,元组中剩余的元素,以列表的形式返回
(二)字典
2.1 字典的基本介绍
- 字典属于⼀种新的数据结构,称为映射(mapping)
- 字典的作⽤和列表类似,都是⽤来存储对象的容器
- 列表存储数据的性能好,但是查询数据的性能差,字典正好与之相反
- 在字典中每⼀个元素都有唯⼀的名字,通过这个唯⼀的名字可以找到指定的元素
- 这个唯⼀的名字我们称之为key,通过key可以快速查询value 也可以称之为值
- 字典我们也称之为键值对(key-value) 结构
- 每个字典中都可以有多个键值对,⽽每⼀个键值对我们称其为⼀项(Item)
- 创建⼀个有数据的字典 语法: {key:value}
字典的value可以是任意对象,字典的key可以是任意的不可变对象(int str bool tuple…) - 字典的key是不能重复的,如果出现重复的,后⾯的会替换前⾯的
2.2 字典的使用
- dict()函数 来创建字典
- get(key[,default]) 该方法根据键来获取字典的值。如果key不存在就返回None。第⼆个参数可以指定⼀个默认值,如果key不存在就会返回默认值
- update() 将其他字典的key-value添加到当前的字典当中
- del 删除字典中的key-value
- popitem() 随机删除字典中的key-value,一般是最后的⼀个。删除之后它会将删除的key-value作为返回值返回
- pop(key[,default ]) 根据key删除字典中的key-value ,会将删除的value返回。第⼆个参数可以指定⼀个默认值,当获取不到值的时候会返回默认值
- d.setdefault(key,[default ])向字典中添加key-value
如果key已存在,则返回key的值,不对字典做任何操作
如果key不存在,则向字典中添加key,并设置value
2.3 copy()
copy() ⽅法⽤来对字典进⾏浅复制
注意:浅复制只会复制字典本身,如果字典中还有个字典,是不会进⾏复制的
复制以后的对象,和原对象各自是独立的,修改其中一个不会互相影响
2.4 遍历字典
- 我们主要可以通过3种⽅式对字典进⾏遍历:
keys() 该⽅法返回字典所有的key
values() 该⽅法返回⼀个序列 序列中保存有字典的值
items() 该⽅法会返回字典中所有的项 - 双值⼦序列:
双值序列:序列中有两个值 例:(2,3) [3,4]
子序列:如果序列中的元素也是序列,就称这个元素为子序列。 例:[(3,4),(5,6)]
(三)集合
集合简介
- 集合表现形式set 集合和列表⾮常相似
- 不同点:
集合只能存储不可变对象
集合中存储的对象是⽆序的
集合不能出现重复元素 - 使⽤{}来创建集合
- set() 函数 来将序列和字典转换成集合 将字典转换为集合时,只会包含字典的key
- len() 来获取集合中元素的数量
- add() 向集合中添加元素
- update() 将⼀个集合中的元素添加到另⼀个集合当中
- pop() 随机删除集合中的⼀个元素,⼀般是删除最后⼀个元素
- remove() 删除集合中指定的元素
- clear() 清空集合
3.1 集合的运算
& 交集运算
| 并集运算
- 差集运算
^ 亦或集
<= 检查⼀个集合是否是另⼀个集合的⼦集
< 检查⼀个集合是否是另⼀个集合的真⼦集
>= 检查⼀个集合是否是另⼀个集合的超集
> 检查⼀个集合是否是另⼀个集合的真超集
4. 可变对象
-
每个对象当中都保存三个数据:
id (标识) type(类型) value(值)
-
列表是一个可变对象
例:a = [1,2,3]
a[0] = x (改对象,改对象里面的值)
这个操作时,通过变量来修改对象里面的值
这个操作不会改变变量指向的对象a = [4,5,6] (改变量)
这个操作在给变量重新赋值
这个操作会改变变量