通常,列表推导式用于从现有列表派生新列表。例如:

>>> a = [1, 2, 3, 4, 5]
>>> [i for i in a if i > 2]
[3, 4, 5]

我们应该使用它们来执行其他程序吗?例如:
>>> a = [1, 2, 3, 4, 5]
>>> b = []
>>> [b.append(i) for i in a]
[None, None, None, None, None]
>>> print b
[1, 2, 3, 4, 5]

或者我应该避免上述情况而使用以下内容吗?:
for i in a:
    b.append(i)

最佳答案

您确实应该避免使用列表推导式(以及字典推导式、集合推导式和生成器表达式)来产生副作用。除了他们会累积一个虚假列表并因此浪费内存这一事实之外,这也令人困惑。我希望列表理解能够产生(有意义的)值(value),而且很多人都会同意。另一方面,循环显然是一个语句序列。预计它们会引发副作用并且不会产生任何结果值(value) - 不足为奇。

关于python - 正确使用列表推导式——python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8695488/

10-14 15:56
查看更多