0

假设我有一本字典dic和一个keylist包含我字典中一些键的列表。我想创建一个理解列表,其中包含dic来自keylist.

我有这样的代码:

 [x for x in dic[keylist[i]] for i in range(len(keylist))]

但我收到此错误:

File "<stdin>", line 1, in <module>
NameError: name 'i' is not defined
4

2 回答 2

2

似乎你想要:

 [dic[x] for x in keylist]

要遍历列表,您不需要使用 index 而只需for element in alist. 不提高 a KeyError,您可以使用:

[dic[x] for x in keylist if x in dic]或者[dic.get(x) for x in keylist]

于 2013-07-13T12:32:10.617 回答
1

尝试以下操作:

[x for i in range(len(keylist)) for x in dic[keylist[i]]]

只是顺序不同。

但这实际上是您应该编写的内容的混淆版本。更好的选择是在另一个答案中。

于 2013-07-13T12:34:14.297 回答