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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始学Python3--列表生成式相关的知识,希望对你有一定的参考价值。

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

常用用法:

>>> [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--列表生成式的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记GAN001:生成式对抗网络,只需10步,从零开始到调试

从零开始学Python3--迭代

从零开始学Python3--list和tuple

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段