为什么有时会不理解python列表理解?
问题内容:
我遇到的许多开发人员建议最好的做法是使用简单的循环,如果条件而不是一行列表理解语句。
我一直发现它们非常强大,因为我可以在一行中放入很多代码,并且可以避免创建大量变量。为什么仍然认为这是一种不良做法?
(慢吗?)
问题答案:
列表推导用于 创建 列表,例如:
squares = [item ** 2 for item in some_list]
对于循环,使用列表(或其他对象)的元素更好 些 :
for item in some_list:
print(item)
人们通常不理解使用它的副作用或使用for循环来创建列表。
这里的其他一些答案主张一旦理解时间太长,就将理解力变成一个循环。我认为这不是好方法:append
创建列表所需的调用仍然很丑陋。而是重构为一个函数:
def polynomial(x):
return x ** 4 + 7 * x ** 3 - 2 * x ** 2 + 3 * x - 4
result = [polynomial(x) for x in some_list]
仅当您担心速度时,并且您已经完成了分析!–您应保持冗长且难以理解的列表理解。