如何使用嵌套名称作为列表理解中先前iterable的\uuu getitem\uu索引?

2024-04-26 22:14:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在列表理解中使用两个for循环,但我想使用第二个for循环的名称作为第一个iterable的索引。我该怎么做?你知道吗

示例:

l = [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
[x for x in l[i] for i in range(len(l))]

错误:

Traceback (most recent call last):
  File "python", line 2, in <module>
NameError: name 'i' is not defined

Tags: in名称示例most列表forlen错误
1条回答
网友
1楼 · 发布于 2024-04-26 22:14:37

你把for循环的顺序搞混了。它们应该以嵌套顺序列出,如果您正常地写出循环,则使用相同的顺序:

[x for i in range(len(l)) for x in l[i]]

当有疑问时,像使用语句一样写出循环。您的列表试图执行以下操作:

for x in l[i]:
    for i in range(len(l)):
        x

更明显的是,在定义i之前,您试图访问它。你知道吗

相关问题 更多 >