通常,列表推导式用于从现有列表派生新列表。例如:
>>> 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/