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