翼度科技»论坛 编程开发 python 查看内容

10公共操作与推导式

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
公共操作与推导式

公共操作

操作方法功能描述操作类型+合并将两个相同类型序列进行连接字符串、列表、元组*复制将里面的数据进行复制字符串、列表、元组len获取序列长度查看序列长度字符串、列表、元组、字典,集合reversed倒置将容器里面的数据倒置字符串、列表、元组、字典max, min最大最小值求容器数据的最大最小值字符串、列表、元组、字典(key),集合sum求和将容器的数据求和列表、元组、字典(key,其为字符串不能使用),集合enumerate索引映射将索引映射给容器里面的数据列表、元组、或字符串in, not in是否存在判断数据是否存在于容器内字符串、列表、元组、字典,集合del删除删除变量或者指定容器内数据变量,容器里面的值
  1. # reversed   倒置         将容器里面的数据倒置        字符串、列表、元组、字典
  2. l1 = [1, 2, 3]
  3. print(reversed(l1))     # <list_reverseiterator object at 0x0000022CE5786A40>
  4. # 可以转为列表使用或者for循环使用
  5. print(list(reversed(l1)))  # [3, 2, 1]
  6. for i in reversed(l1):
  7.     print(i)
  8. # 3
  9. # 2
  10. # 1
  11. # enumerate  索引映射      索引映射给容器里面的数据    列表、元组、或字符串
  12. l1 = ['a', 'b', 'c']
  13. # 转换为常见数据类型或for循环使用
  14. print(list(enumerate(l1)))     # [(0, 'a'), (1, 'b'), (2, 'c')]
  15. for index, data in enumerate(l1, start=0):        # start = 开始的索引值(不写也可,默认为0)
  16.     print(index, data)
  17. # 0 a
  18. # 1 b
  19. # 2 c
复制代码
容器类型的转换


  • 所有数据类型都可以转换为字符串
  • 转换为集合的时候需要注意数据的去重
  • 字典数据转换是需要注意按照key还是value转换
  1. # 字典转为列表
  2. goods = {"name1": "可乐", "name2": "雪碧", "name3": "炸鸡"}
  3. list1 = list(goods)
  4. print(list1)  # ['name1', 'name2', 'name3']   所有的key值转换成了列表
  5. list2 = list(goods.values())
  6. print(list2)  # ['可乐', '雪碧', '炸鸡']  所有的value值转换成了列表
  7. # 列表转字典
  8. # 列表是不能够直接dict转换成字典
  9. # 1)嵌套列表转字典
  10. a = ['可乐', '雪碧']
  11. b = ['3元', '5元']
  12. c = [a, b]  # 嵌套的形式转换
  13. print(c)    # [['可乐', '雪碧'], ['3元', '5元']]
  14. print(dict(c))  # {'可乐': '雪碧', '3元': '5元'}
  15. # ps:若列表长度不一致,会报错
  16. # 2)使用zip()函数将列表转换成字典
  17. a = ['可乐', '雪碧', '炸鸡']
  18. b = ['3元', '5元']
  19. c = zip(a, b)
  20. print(c)    # <zip object at 0x0000010FC5DD0040>
  21. print(list(c))  # [('可乐', '3元'), ('雪碧', '5元')]  若长度不一样,多出的元素会不显示。
  22. print(dict(c))  # {'可乐': '3元', '雪碧': '5元'}  若长度不一样,多出的元素会不显示。
复制代码
列表推导式和三元表达式
  1. # 列表推导式
  2. # 代码简写,增加运行效率  减少代码可读性,难理解
  3. # 普通写法
  4. list_data = []
  5. for i in range(10):
  6.     list_data.append(i)
  7. print(list_data)
  8. # 推导式写法 不是所有代码都可以简写为推导式,只有一种固定操作
  9. # 创建列表,循环数据,添加数据(append),没有其他操作
  10. list_data = [i for i in range(10)]
  11. print(list_data)
  12. # 普通写法
  13. list_data = []
  14. for i in range(10):
  15.     if i % 2 == 0:
  16.         list_data.append(i)
  17. print(list_data)
  18. # 创建列表,循环数据,添加数据位置永远在最前面 if(多个也可以,但不建议,可读性太差)放后面
  19. list_data = [i for i in range(10) if i % 2 == 0]
  20. print(list_data)
  21. # 三元表达式
  22. # 普通写法
  23. age = 16
  24. if age > 18:
  25.     print("成年")
  26. else:
  27.     print("未成年")
  28. # 三元表达式的写法
  29. age = 16
  30. print("成年") if age > 18 else print("未成年")
  31. # 普通写法,if分支语句种含有赋值
  32. age = 16
  33. if age > 18:
  34.     data = 1
  35. else:
  36.     data = 0
  37. print(data)
  38. # if分支语句种含有赋值的三元表达式写法
  39. data = 1 if age > 18 else 0
  40. print(data)
  41. # 列表推导式与三元表达式
  42. # 普通写法
  43. list_data = []
  44. for i in range(10):
  45.     if i % 2 == 0:
  46.         list_data.append(i)
  47.     else:
  48.         list_data.append((str(i)))
  49. print(list_data)
  50. # 列表推导式与三元表达式结合使用
  51. list_data = [i if i % 2 == 0 else str(i) for i in range(10)]
  52. print(list_data)
复制代码
ps:一般使用较多的就是列表创建时的列表推导式,其他不推荐使用,代码可读性太差,只需要认识其表达含义即可。

来源:https://www.cnblogs.com/daguo118/p/17312219.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具