Python 列表推导式和字典推导式
在 Python 中,善用列表推导式和字典推导式可以非常方便地创建列表和字典。
列表推导式
又称列表解析式,提供了一种简明扼要的方法来创建列表。
基本语法如下:
variable = [item for item in iterable]
假设我们有如下需求,求 0-9 的平方是多少,用循环实现如下:
>>> squares = []
>>> for x in range(10):
... squares.append(x**2)
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
我们可以直接使用列表推导式来简化上述操作:
squares = [x**2 for x in range(10)]
遍历 0-9 的数组,然后对每一项求平方后添加到那个变量里面去
列表推导式还可以进行多重循环这样复杂的操作
>>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
等同于
>>> combs = []
>>> for x in [1,2,3]:
... for y in [3,1,4]:
... if x != y:
... combs.append((x, y))
...
>>> combs
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
字典推导式
语法类似于列表推导式,是 Python 2.7 才新增的新特性
d = {key: value for (key, value) in iterable}

浙公网安备 33010602011771号