gpt4 book ai didi

python - 比较两个具有列表类型值的字典

转载 作者:行者123 更新时间:2023-11-28 20:28:32 25 4
gpt4 key购买 nike

我正在尝试比较两部词典。我的方法是将它们变成两个单独的元组列表,然后使用 set 模块。这是一个例子:

dict = {'red':[1,2,3],'blue':[2,3,4],'green':[3,4,5]}

dict1 = {'green':[3,4,5],'yellow':[2,3,4],'red':[5,2,6]}

intersection = set(set(dict.items()) & set(dict1.items()))

显然,这是在比较两个元组列表,python 不喜欢这样。我收到 TypeError: 'list' is unhashable 错误(或类似的措辞)。

我希望交集包含 [('green',[3,4,5])]。有什么想法吗?

最佳答案

shared_keyvals = dict( (key, dict1[key])
for key in (set(dict1) & set(dict2))
if dict1[key] == dict2[key]
)

你甚至可以把它变成一个函数:

def shared_keyvals(dict1, dict2):
return dict( (key, dict1[key])
for key in (set(dict1) & set(dict2))
if dict1[key] == dict2[key]
)

显然,如果您不想以字典形式输出,您可以删除 dict() 调用并替换为列表理解括号 ([] ) 而不是。

关于python - 比较两个具有列表类型值的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5062166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com