python - 比较列表和字典
问题描述
在 python 中比较列表和 dict.values 的最快方法是什么?例如以这两个为例:
dict = {1:'value1', 2:'value2', 3:'value3'}
list = ['val1', 'val2', 'value3']
value3 在两个数据结构中都存在,那么通过它们并返回 value3 的最快方法是什么。我试过使用forloops,但它太慢了。
编辑:字典是动态的,所以每次代码运行时,值都会不断变化,我会收到这样的错误:
unhashable type: 'set'
解决方案
使用set()
并获取两者的交集,也不要使用内置名称dict
和list
变量,总有一天它会给你带来麻烦
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)