1,列表推导式提供了一个更简单的创建列表的方法。常见的用法是把某种操作应用于序列或可迭代对象的每个元素上,然后使用其结果来创建列表,或者通过满足某些特定条件元素来创建子序列。
例如,假设我们想创建一个平方列表,像这样
>>> 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)]
这也相当于,但它更简洁易读。squares = map(lambda x: x**2, range(10))
2,列表推导式由包含表达式的括号组成,后跟一个for子句,然后是零个或多个fororif 子句。结果将是一个新列表,该列表是通过在其后面的forandif子句的上下文中评估表达式而产生的。例如,这个 listcomp 组合两个列表的元素,如果它们不相等:
>>> [(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<