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}

参考链接

posted @ 2017-07-31 12:59  天涯海角路  阅读(179)  评论(0)    收藏  举报