pei*_*ixe 17 python dictionary key list match
在python中......我有一个元素列表'my_list',以及一个字典'my_dict',其中一些键在'my_list'中匹配.
我想搜索字典并检索与'my_list'元素匹配的键的键/值对.
我试过这个......
if any(x in my_dict for x in my_list):
print set(my_list)&set(my_dict)
Run Code Online (Sandbox Code Playgroud)
但它没有做到这一点.
Sve*_*ach 35
(我改名list,以my_list和dict以my_dict避免与类型名称冲突.)
为了获得更好的性能,您应该遍历列表并检查字典中的成员身份:
for k in my_list:
if k in my_dict:
print k, my_dict[k]
Run Code Online (Sandbox Code Playgroud)
如果要从这些键值对创建新词典,请使用
new_dict = {k: my_dict[k] for k in my_list if k in my_dict}
Run Code Online (Sandbox Code Playgroud)
Fel*_*ing 15
不要使用dict和list作为变量名.它们影响了内置函数.假设列表l和字典d:
kv = [(k, d[k]) for k in l if k in d]
Run Code Online (Sandbox Code Playgroud)
Rob*_*wie 11
new_dict = dict((k, v) for k, v in dict.iteritems() if k in list)
Run Code Online (Sandbox Code Playgroud)
将列表转换为集合set(list) 可能会产生明显的速度增加