字典键在列表上匹配;获取键/值对
在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)
但它不起作用。
In python... I have a list of elements 'my_list', and a dictionary 'my_dict' where some keys match in 'my_list'.
I would like to search the dictionary and retrieve key/value pairs for the keys matching the 'my_list' elements.
I tried this...
if any(x in my_dict for x in my_list):
print set(my_list)&set(my_dict)
But it doesn't do the job.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
与类型名称冲突。)
(我将
list
重命名为my_list
,将dict
重命名为my_dict
以避免 性能方面,您应该迭代列表并检查字典中的成员资格:如果要从这些键值对创建新字典,请使用
(I renamed
list
tomy_list
anddict
tomy_dict
to avoid the conflict with the type names.)For better performance, you should iterate over the list and check for membership in the dictionary:
If you want to create a new dictionary from these key-value pairs, use
不要使用
dict
和list
作为变量名称。它们隐藏了内置函数。假设列表l
和字典d
:Don't use
dict
andlist
as variable names. They shadow the built-in functions. Assuming listl
and dictionaryd
:将列表转换为集合
set(list)
可能会带来明显的速度提升Turning list into a set
set(list)
may yield a noticeable speed increase试试这个:
Try This:
怎么样
print([kv for kv in dict.items() if kv[0] in list])
What about
print([kv for kv in dict.items() if kv[0] in list])
这是一个单行解决方案
Here is a one line solution for that