假设我有一本字典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
假设我有一本字典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
似乎你想要:
[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]
尝试以下操作:
[x for i in range(len(keylist)) for x in dic[keylist[i]]]
只是顺序不同。
但这实际上是您应该编写的内容的混淆版本。更好的选择是在另一个答案中。