2020-01-26
1、列表
1)列表的表达
① 定义列表:ls1 = ['Python', 1998,True,{version:3.7}]
② 其他类型转成列表:ls2 = list(可迭代对象,例如元组、字符串、集合等)
ls2 _1= list("人工智能牛逼") # 字符串转成列表
ls2 _2= list(('人','工','智','能','牛','逼')) # 元组转成列表
ls2 _3= list({'人','工','智','能','牛','逼'}) # 集合转成列表
2)列表的性质
① 列表长度:len(ls)
② 列表的索引:可以通过下标访问元素,有正反索引
③ 列表的切片:变量名[开始位置:结束位置:切片位置]
3)列表的操作函数
① 列表的拼接:list1+list2
ls1=[1,2]
ls2=[3,4]
ls3=ls1+ls2 # 结果是[1,2,3,4]
② 求幂次方 pow(x,n):a = pow(2,5) # 求2的5次方
③ 四舍五入 round(x,n):a = round(a,2) # a四舍五入保留2位小数
④ 商和模运算 divmod(x,y):divmod(13,5) # 相当于 (x//y,x%y),更快一点
⑤ 最大/最小值 max() min()
⑥ 求和 sum(列表或元组)
4)列表的操作方法
① 增加元素
ls1.append("python") # 在末尾增加元素
ls1.insert(位置编号, 待增元素) # 在指定位置增加元素
ls1.extend(ls2) # 在末尾增加另一个列表
② 删除元素
ls1.pop(待删元素的位置编号) # 指定位置删除元素元素,当参数缺省时删除最后一个元素
ls1.remove(待删元素) # 删除指定元素
③ 查找元素:列表.index(待查元素) # 返回待查元素在列表中的下标位置
④ 修改元素:列表[位置下标] = 新值
⑤ 列表复制
ls2 = ls1.copy() # 浅拷贝
ls2 = ls1[:] # 浅拷贝
关于浅拷贝和深拷贝,以及背后的原理放到第9部分进行说明。
这里只要记住列表复制用浅拷贝,不能直接ls2 = ls1。
⑥ 列表排序:列表.sort() # 参数缺省递增排序,参数为-1为递减排序
⑦ 列表翻转:列表.reverse()
2、元组
1)元组的表达:name = ('LC',18,True)
2)元组的操作
不支持元素的增删改,其他与列表完全一致
3)元组的常见用处:打包与解包
① 用在函数返回值上
1 |
|
② 用在列表打包上
1 |
|
3、字典
1)字典的表达:stu = {201901:'小明',201902:'小红',201903:'小强'}
2)字典的要求:键不能重复;键必须是不可变类型(数字/字符串/元组)
3)字典的性质
① 字典的长度/键值对的个数:len(stu)
② 字典的索引:stu[201901] # 字典[键]的形式
4)字典的操作方法
① 增加键值对:字典[新键] = 新值
② 删除键值对:字典.pop(键)
③ 修改键值对:字典[键] = 新值
④ get方法:stu.get(key,default) # 从字典stu中获取key对应的值,如果没有这个键则返回default
⑤ key方法和value方法
stu.key() # 获取字典中的键,返回类型是列表
stu.value() # 获取字典中的值,返回类型是列表
⑥ items方法及字典的遍历
1 |
|
4、集合
1)集合的表达:stu = {201901,'小明',201902, '小红',201903, '小强'}
2)集合的运算
① 交:jihe1 & jihe2
② 并:jihe1 | jihe2
③ 非交:jihe1 ^ jihe2
④ 在A不在B的元素:jihe1 - jihe2
3)集合的操作方法
① 增加元素:stu.add(要增加的元素)
② 删除元素:stu.remove(要删除的元素)