码迷,mamicode.com
首页 > 编程语言 > 详细

从零开始学Python3(七)--列表生成式

时间:2017-10-01 21:11:08      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:从零开始   class   数字   rip   upper   license   print   ict   复杂   

  列表生成式主要用于生成较为复杂的列表

常用用法:

>>> [x * x for x in range(5) if x % 3 !=1 ]
[0, 4, 9]   #返回除以3余数不为1的数字的平方

还可以使用两层循环,可以生成全排列:

>>> [m + n for m in 123 for n in abc]
[1a, 1b, 1c, 2a, 2b, 2c, 3a, 3b, 3c]

运用列表生成式,可以写出非常简洁的代码。例如,列出当前目录下的所有文件和目录名,可以通过一行代码实现:

>>> os.getcwd()
D:\\python
>>> [d for d in os.listdir(os.getcwd())]  #列出当前目录下的文件和目录
[DLLs, Doc, geckodriver.exe, include, Lib, libs, LICENSE.txt, NEWS.txt, python.exe, pythonw.exe, README.txt, Scripts, selenium, tcl, Tools, w9xpopen.exe]

for循环其实可以同时使用两个甚至多个变量,比如dictitems()可以同时迭代key和value:

>>> for k ,v in a.items():
    print k ,= ,v

a = 1
b = 2

因此,列表生成式也可以使用两个变量来生成list:

>>> [k+=+str(v) for k,v in a.items()]
[a=1, b=2]
>>> [k.upper()+=+str(v) for k,v in a.items() if v != 1]  #加入判断和其他表达式
[B=2]

小结

运用列表生成式,可以快速生成list

从零开始学Python3(七)--列表生成式

标签:从零开始   class   数字   rip   upper   license   print   ict   复杂   

原文地址:http://www.cnblogs.com/Detector/p/7617745.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!