python的高级特性-列表生成式
2017-07-24 本文已影响0人
我愿是你的左右手
一、定义
列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。
二、用法
现在我们先生成一个list:
In [2]: list(range(0,10))
Out[2]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
假如我们想把list的每项都乘以2,该如何做呢,你可能这样写
In [5]: L = list(range(0,10))
In [6]: N = []
In [7]: for i in L:
...: N.append(i*2)
...:
In [8]: N
Out[8]: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
这时候生成式就派上用场了,他可以让你的功能只需一行代码就可以实现
[x*2 for x in L]
Out[10]: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
我们注意的是,生成式是在[] 内 对循环的每个list成员进行再处理
把再处理的行为放在 for 前面即可
最后把一个list中所有的字符串变成小写:
In [11]: L = ['Hello', 'World', 'IBM', 'Apple']
In [12]: [s.lower() for s in L]
Out[12]: ['hello', 'world', 'ibm', 'apple']
只要遵守这个用法,生成式可以帮助我们做很多很多事情,在以后的实战项目中,你会对他慢慢熟悉