gpt4 book ai didi

python - 为什么 Python 要求列表理解中的子句是错误的?

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:49 25 4
gpt4 key购买 nike

请看两个列表推导式,每个推导式都涉及两个 for 子句。我们看到,如果 for 子句的顺序正确,Python 就会感到困惑。但是,如果它们是错误的方式,Python 可以处理它。为什么?

Python 3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> [x + y for x in range(y) for y in range(4)]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'y' is not defined
>>> [x + y for y in range(4) for x in range(y)]
[1, 2, 3, 3, 4, 5]
>>>

最佳答案

[x + y for x in range(y) for y in range(4)]

range(y) 中的 y 在那个地方是未知的。相当于:

for x in range(y):
for y in range(4):
# x + y

参见 PEP-0202了解更多信息:

- The form [... for x... for y...] nests, with the last index
varying fastest, just like nested for loops.

关于python - 为什么 Python 要求列表理解中的子句是错误的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15766778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com