1
我有一个表示字典值的列表。我试图解析字典寻找那也是我的列表中的值,并从该只包含匹配的值创建一个新的字典:在新词典中匹配dict和返回键/值对的列表值
a = [1, 2, 3]
b = {"aye":1, "bee":2, "cee":3, "dee":4, "eee":5}
new_dict = dict((k, v) for k, v in b.iteritems() if k in a)
print new_dict
我的期望输出应该是这样的:
new_dict = {"aye":1, "bee":2, "cee":3}
然而,所有我得到的回复是:
{}
谁能告诉我在哪里,我错了?
它不应该是'如果v在a'? – vaultah 2015-02-11 19:15:21
'dict((k,v)for k,v in b.iteritems()if k in a)'是Python 2.6的语法。除非你碰巧使用旧版本,否则现代解决方案是使用词典理解:'如果k在a中'{k:v for k,v在b.iteritems()中。 – iCodez 2015-02-11 19:19:04
如果表现对你很重要,'a'应该是'set'。 – Akavall 2015-02-11 20:05:34