一、 列表
1、产生方式:
1.1 Is=[] 直接用[]框住元素,用“,”隔开
1.2list(可迭代对象)
1.2.1eg1:字符串转列表
1.2.2 eg2:元组转列表
1.2.3 eg3:集合转列表
因为集合本身就是无序的,所以顺序和之前的输入不一样是正常的。
1.3 特殊的range():
完整的range是range(起始数字,终止数字,数字间隔) 终止数字是取不到的 。记住,range是用逗号隔开,split是用冒号隔开。
请注意11是没有取到的。
2、列表的性质
2.1 len()来获取长度
2.2 列表的索引 ----与同为序列类型的字符串的索引相同。
- 正向索引从0开始
- 反向索引从-1开始
2.3、列表的切片—同字符串的切片类似
- 正向切片
变量名[开始位置:结束位置:切片间隔] - 反向切片
3、列表操作符
- 用“+”实现列表拼接
- 用*实现成倍复制
4、列表的操作方法
4.1、增加元素
- 在末尾增加–列表.append(待增元素)
- 在任意位置增加函数–列表.insert(位置编号,待增元素)
- 在末尾并入另一列表–列表.extend(列表2)
- 4.2删除元素
- 删除列表第i位置的元素 pop(i)
- 不写位置信息,默认删除最后一个元素
- 删除表中第一次出现的待删元素 列表。remove(待删元素)。(如果要删掉所有,就用while循环和存在判断来删除所有重复的指定元素)
4.3 查找元素
- 列表中第一次出现待查元素的位置。列表.index(待查元素)如果元素不存在就会报错。
4.4 修改
- 先索引再赋值
- 4.5 列表的复制
- 错误的复制方式:
L2=L1 (直接复制变量名实际上只是相当于给列表起了一个别名,操作L1就相当于在操作L2) - 正确的复制方式:
方法1:列表.copy()–浅拷贝
L2=L1.copy()
方法2:列表[:]切片后再赋值给另一个 如:L2=L1[:]
4.6列表排序 - 列表.sort()默认递增排序,会改变原始列表
- 列表.sort(reverse=True)递增排序
- sorted(列表)不改变原始列表
- sorted(列表,reverse=True )递增排序
4.6列表遍历 - 用for循环进行遍历 (for i in 列表)
- 用列表[::-1]进行翻转或用reverse进行永久翻转。
二、元组
1、元组的表达
- 元组不支持增删改操作的序列类型,而列表支持
- 元组用圆括号,列表用方括号。
2、元组的操作
- 不支持增加、删除、修改操作
- 其它操作与列表一致
3、元组的常见用处
- 打包与解压
注意是(1,3)(2,4)就是f3和f2用zip打包。
三、字典
1、注意事项
- 映射类型:通过键-值的映射来查找和存储
- 无序的
- 字典键不能重复
- 键必须是不可变类型:数字,字符串,元组
2、 字典的性质
- 字典的长度–键值对的个数
- 字典的索引 通过
3、 字典的操作方法
- 增加键值对:变量名[新建]=新值
- 删除键值对:(1)del (2)变量名.pop这种删除方法会把删除的键值作为返回值 (3)popitem()随机删除,返回一个元组
- 修改值:先索引,再赋一个新值
- d.get()方法:d.get(key.default)从字典中获取key对应的值,如果没有则返回default。
- d.keys() 和d.values()方法,得到所有键的值和所有值。
- d.items()方法及字典遍历
四、集合
1、集合的表达
- 可以看做是没有值或者值是nonel的字典,实际上底层实现也是一样的
2、集合的运算
- 交集运算用“&”
- 并运算用“|”
- 差集用“-”
3、集合的遍历
用for s in S来遍历