【Python】高级特性之列表生成式

来源:互联网 发布:win7软件图标模糊 编辑:程序博客网 时间:2024/05/07 01:54

    Python中的列表生成式是Python产生list的一种强大的表达式。比如说我们需要产生一个list包含一个目录下所有的文件和目录。

import osL1 = [file for file in os.listdir('E:\\1111')]print(L1)
运行结果:  ['1', '2', '3', '4', '5', 'learning.py', 'test1.py']  其中1,2,3,4,5为文件夹

    我们也可以在for循环中添加一些筛选条件,比如我们只需要目录下的所有文件组成一个list

import osL1 = [file for file in os.listdir('E:\\1111') if os.path.isfile(file)]print(L1)
运行结果:['learning.py', 'test1.py']

    我们也可以用表达式和循环来生成一个liso,比如下面的例子,我们需要生成这样一个list:[1*2, 2*3, 3*4, 4*5, 5*6]

L1 = [x*(x+1) for x in range(1,6)]print(L1)
运行结果:[2, 6, 12, 20, 30],如果表达式比较复杂,我们可以拆开成两个甚至多个循环,只需要在for循环的后面再写一个或多个for循环就行。

    当然,既然Python中是支持在循环中有两个变量或多个变量,那么也就支持用这样的循环去生成list

a={'a1': 1, 'a2' : 2, 'a3' : 3, 'a4' : 4}L1 = [k + ':' + str(v) for k,v in a.items()]print(L1)
运行结果:['a1:1', 'a2:2', 'a3:3', 'a4:4']
    



阅读全文
0 0
原创粉丝点击