<分区>
我对这个列表理解有点困惑:
l = [[i * j for j in range(3, 5)] for i in range(3)]
按什么顺序执行?
<分区>
我对这个列表理解有点困惑:
l = [[i * j for j in range(3, 5)] for i in range(3)]
按什么顺序执行?
最佳答案
这是一个非常普通的列表理解形式:
[expression for var in iterable]
在这种情况下,expression
恰好是另一个列表理解。因此,内部理解将为外部迭代产生的每个项目评估一次。
如果我们将内部理解分解为一个函数,可能会感觉更清楚一些:
def inner(i):
return [i * j for j in range(3, 5)]
l = [inner(i) for i in range(3)]
现在我们更清楚地看到(希望无论如何)外部理解导致内部理解对 i
中的每个“range(3)
”执行一次.
关于python - 这个 Python 列表推导式是按什么顺序执行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36440162/