元组内置方法
什么是元组(tuple):只可取不可更改的列表,元组一创建就被写死了
-
作用:元组一创建就被写死了
-
定义方式:()内用逗号隔开多个元素(可以为任意数据类型)
如果元组只有一个元素,必须得加逗号
-
使用方法
- 索引取值
- 索引切片
- for循环
- 成员运算
- len长度
- index获取元素索引
- count计数
-
有序or无序
有序
-
可变or不可变
压根没有这一说
定义元祖--》占用内存小--》写死了
字典内置方法
-
作用
储存多个数据,对每个数据具有描述
-
定义方式
{}内用逗号隔开多个键key(具有描述意义,不能为可变数据类型):值value(任意数据类型)对
-
使用方式
- 按key取值/按key修改值
- 添加值,没有就添加,有就修改
- for循环
- 成员运算
- len长度
- keys/values/items
- get 获取(没有就返回None,可以给定一个默认值
- update 更新(等同于list里的extend)
- fromkeys
- setdefault(只添加不修改)
-
有序or无序
无序
-
可变or不可变
可变
散列表/哈希表存储数据
相比较列表,哈希表插入/删除数据更快
- 首先对key做了哈希处理(能对所有数据类型都可以哈希处理):梅森旋转算法(生成伪随机数)--> 通过哈希处理对于每个key他都可以生成一个序列(永不重复,相同的东西进入哈希处理,结果相同)
- 使用哈希函数对刚刚生成的序列(纯数字),对纯数字除9取余(0,1,2,3,4,5,6,7,8)
集合内置方法
什么是集合:交集/并集/补集/差集
-
作用
- 进行上述运算
- 去重
- 乱序 --》基于散列实现的
-
定义方式
{}内以逗号隔开多个元素(不能可为变数据类型)
空字典
s = {}
空集合
s = set{}s = {'a', 'a', 'a', 'a', 1, 'v', 2, 2, 'c', 3, 3, 4, 5, 6} # 对于数字而言,不会乱序;但是对于其他,就乱序
print(s) # {1, 2, 'a', 'c', 3, 4, 5, 6, 'v'} -
使用方法
-
并集
print(pythoners | linuxers)
-
交集
print(pythoners & linuxers)
-
差集
print(pythoners - linuxers)
-
补集
print(pythoners ^ linuxers)
-
add
pythoners.add('oscar')
-
pop 随机删除一个
pythoners.pop()
-
-
有序or无序
无序
-
可变or不可变
可变
数据类型总结
存值个数
存一个值:整型/浮点型/字符串
存多个值:列表/元组/字典/集合
有序or无序
有序:字符串/列表/元组(序列类型)
无序:字典/集合
可变or不可变
可变:列表/字典/集合
不可变:整型/浮点型/字符串/元组
深浅拷贝(只针对可变数据类型)
深浅拷贝
拷贝
当y为x的拷贝对象,如果x为不可变类型,x变化y不变;如果x为可变类型,x变化y也变。
浅拷贝
如果list2是list1的浅拷贝对象,则list1内的不可变元素发生了改变,list2不变;如果list1内的可变元素发生了改变,则list2会跟着改变。
深拷贝
如果list2是list1的深拷贝对象,则list1内的不可变元素发生了改变,list2不变;如果list1内的可变元素发生了改变,list2也不会变,即list2永远不会因为list1的变化而变化。