首页 > 解决方案 > 比较列表和字典

问题描述

在 python 中比较列表和 dict.values 的最快方法是什么?例如以这两个为例:

dict = {1:'value1', 2:'value2', 3:'value3'}
list = ['val1', 'val2', 'value3']

value3 在两个数据结构中都存在,那么通过它们并返回 value3 的最快方法是什么。我试过使用forloops,但它太慢了。

编辑:字典是动态的,所以每次代码运行时,值都会不断变化,我会收到这样的错误:

unhashable type: 'set'

标签: pythonlistdictionary

解决方案


使用set()并获取两者的交集,也不要使用内置名称dictlist变量,总有一天它会给你带来麻烦

dict_values = {1:'value1', 2:'value2', 3:'value3'}
list_values = ['val1', 'val2', 'value3']

intersec = set(list_values).intersection(dict_values.values())
print(intersec)

没有set

intersec=[]
for value in dict_values.values():
  if value in list_values:
    intersec.append(value)

推荐阅读