Python列表生成式

Python列表生成式

列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来快速创建list的生成式。

比如:要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11))

>>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

如果想要生成:[1, 4, 9,16, ..., 100]怎么办呢?

方法一:for循环

>>> Ret = []
>>> for x in range(1, 11):
...    Ret.append(x * x)
...
>>> Ret
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

方法二:列表生成式

>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

这就是最简单列表生成是。 聪明的你一定注意到了for x in range(1, 11)就是for循环,然后for的前面放置一个表达式,此处x*x,最外面式list。这就是它的结构

结构:[表达式 for x in 列表 条件] 如[x * x for x in range(1, 11)]

带条件的列表生成式

>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]

实际上后面部分就是for循环的简写形式。

D = []
for x in range(1,11):
    if x % 2 ==0:
        D.append(x*x)
D

你懂了吗?

声明:原创文章,版权所有,转载请注明出处,https://litets.com。