|
公共操作与推导式
公共操作
操作方法功能描述操作类型+合并将两个相同类型序列进行连接字符串、列表、元组*复制将里面的数据进行复制字符串、列表、元组len获取序列长度查看序列长度字符串、列表、元组、字典,集合reversed倒置将容器里面的数据倒置字符串、列表、元组、字典max, min最大最小值求容器数据的最大最小值字符串、列表、元组、字典(key),集合sum求和将容器的数据求和列表、元组、字典(key,其为字符串不能使用),集合enumerate索引映射将索引映射给容器里面的数据列表、元组、或字符串in, not in是否存在判断数据是否存在于容器内字符串、列表、元组、字典,集合del删除删除变量或者指定容器内数据变量,容器里面的值- # reversed 倒置 将容器里面的数据倒置 字符串、列表、元组、字典
- l1 = [1, 2, 3]
- print(reversed(l1)) # <list_reverseiterator object at 0x0000022CE5786A40>
- # 可以转为列表使用或者for循环使用
- print(list(reversed(l1))) # [3, 2, 1]
- for i in reversed(l1):
- print(i)
- # 3
- # 2
- # 1
- # enumerate 索引映射 索引映射给容器里面的数据 列表、元组、或字符串
- l1 = ['a', 'b', 'c']
- # 转换为常见数据类型或for循环使用
- print(list(enumerate(l1))) # [(0, 'a'), (1, 'b'), (2, 'c')]
- for index, data in enumerate(l1, start=0): # start = 开始的索引值(不写也可,默认为0)
- print(index, data)
- # 0 a
- # 1 b
- # 2 c
复制代码 容器类型的转换
- 所有数据类型都可以转换为字符串
- 转换为集合的时候需要注意数据的去重
- 字典数据转换是需要注意按照key还是value转换
- # 字典转为列表
- goods = {"name1": "可乐", "name2": "雪碧", "name3": "炸鸡"}
- list1 = list(goods)
- print(list1) # ['name1', 'name2', 'name3'] 所有的key值转换成了列表
- list2 = list(goods.values())
- print(list2) # ['可乐', '雪碧', '炸鸡'] 所有的value值转换成了列表
- # 列表转字典
- # 列表是不能够直接dict转换成字典
- # 1)嵌套列表转字典
- a = ['可乐', '雪碧']
- b = ['3元', '5元']
- c = [a, b] # 嵌套的形式转换
- print(c) # [['可乐', '雪碧'], ['3元', '5元']]
- print(dict(c)) # {'可乐': '雪碧', '3元': '5元'}
- # ps:若列表长度不一致,会报错
- # 2)使用zip()函数将列表转换成字典
- a = ['可乐', '雪碧', '炸鸡']
- b = ['3元', '5元']
- c = zip(a, b)
- print(c) # <zip object at 0x0000010FC5DD0040>
- print(list(c)) # [('可乐', '3元'), ('雪碧', '5元')] 若长度不一样,多出的元素会不显示。
- print(dict(c)) # {'可乐': '3元', '雪碧': '5元'} 若长度不一样,多出的元素会不显示。
复制代码 列表推导式和三元表达式
- # 列表推导式
- # 代码简写,增加运行效率 减少代码可读性,难理解
- # 普通写法
- list_data = []
- for i in range(10):
- list_data.append(i)
- print(list_data)
- # 推导式写法 不是所有代码都可以简写为推导式,只有一种固定操作
- # 创建列表,循环数据,添加数据(append),没有其他操作
- list_data = [i for i in range(10)]
- print(list_data)
- # 普通写法
- list_data = []
- for i in range(10):
- if i % 2 == 0:
- list_data.append(i)
- print(list_data)
- # 创建列表,循环数据,添加数据位置永远在最前面 if(多个也可以,但不建议,可读性太差)放后面
- list_data = [i for i in range(10) if i % 2 == 0]
- print(list_data)
- # 三元表达式
- # 普通写法
- age = 16
- if age > 18:
- print("成年")
- else:
- print("未成年")
- # 三元表达式的写法
- age = 16
- print("成年") if age > 18 else print("未成年")
- # 普通写法,if分支语句种含有赋值
- age = 16
- if age > 18:
- data = 1
- else:
- data = 0
- print(data)
- # if分支语句种含有赋值的三元表达式写法
- data = 1 if age > 18 else 0
- print(data)
- # 列表推导式与三元表达式
- # 普通写法
- list_data = []
- for i in range(10):
- if i % 2 == 0:
- list_data.append(i)
- else:
- list_data.append((str(i)))
- print(list_data)
- # 列表推导式与三元表达式结合使用
- list_data = [i if i % 2 == 0 else str(i) for i in range(10)]
- print(list_data)
复制代码 ps:一般使用较多的就是列表创建时的列表推导式,其他不推荐使用,代码可读性太差,只需要认识其表达含义即可。
来源:https://www.cnblogs.com/daguo118/p/17312219.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
|