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

python经典有序序列的list列表推导式

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
生成一个数据列表
  1. # 初始化一个列表
  2. list_1 = []
  3. # 使用循环生成一个列表数据
  4. for val in range(0,20,1):
  5.     # 加入集合
  6.     list_1.append(val)
  7. # 打印列表数据
  8. print(list_1)
  9. # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
复制代码
使用列表推导式生成该数据列表
  1. # 列表推导式生成列表数据
  2. list_2 = [i for i in range(20)]
  3. # 打印列表数据
  4. print(list_2)
  5. # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
复制代码
分析:
1、使用一行代码的列表推导式就完成了该列表的生成
2、[i for i in range(20)],第一个i元素代表向列表list_2中添加的元素
3、[i for i in range(20)],第二个i元素代表for循环遍历的i元素
使用列表推导式生成只有偶数的数据列表
  1. # 在基本列表推导式的基础上加入条件判断
  2. list_3 = [i for i in range(20) if i % 2 == 0]
  3. # 打印列表推导式
  4. print(list_3)
  5. # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
复制代码
分析:
[i for i in range(20) if i % 2 == 0],第三个if后面的i元素,相当于是在for循环内部提取其中的i元素作条件校验。
双重循环的列表推导式
  1. # 既然是双重循环则需要定义两个变量a、b
  2. list_4 = [(a,b) for a in range(4) for b in range(5)]
  3. #学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
  4. # 由于打印结果是列表中包含元组信息,使用pprint可以美观的打印数据
  5. from pprint import pprint
  6. # 打印列表推导式
  7. pprint(list_4)
  8. # [(0, 0),
  9. #  (0, 1),
  10. #  (0, 2),
  11. #  (0, 3),
  12. #  (0, 4),
  13. #  (1, 0),
  14. #  (1, 1),
  15. #  (1, 2),
  16. #  (1, 3),
  17. #  (1, 4),
  18. #  (2, 0),
  19. #  (2, 1),
  20. #  (2, 2),
  21. #  (2, 3),
  22. #  (2, 4),
  23. #  (3, 0),
  24. #  (3, 1),
  25. #  (3, 2),
  26. #  (3, 3),
  27. #  (3, 4)]
复制代码
分析:
其中a、b分别对应第一个和第二个for循环的遍历元素a、b,同样可以加入a、b元素的条件校验,比如可以写成如下的列表推导式
  1. list_5 = [(a,b) for a in range(4) if a % 2 == 0 for b in range(5) if b % 2 == 0]
复制代码
来源:https://www.cnblogs.com/xxpythonxx/p/17962514
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具