我需要在python中比较多个词典中的键和值。发布了类似的问题,但针对我的具体问题,他们还不够。我收到的语法错误似乎无法理解。
我的代码试图在五种不同的dicts之间比较dict键和值。我需要返回它们之间100%相同的那些并将它们添加到一个普通的' dict,comm_one
:
comm_one = {}
for k, v in dot_105.items():
if k, v in dot_110.items() and k, v in dot_81.items() and k, v in dot_82.items() and k, v in dot_100.items():
comm_one[k] = v
elif k, v not in dot_110.items() and k, v not in dot_81.items() and k, v not in dot_82.items() and k, v not in dot_100.items():
print(k, v,' is only in dot_105.')
在所有dicts中循环显示所有值的正确语法是什么?如果有一个问题可以解答我可能错过的问题,我会很感激它的链接。提前谢谢。
答案 0 :(得分:3)
comm_one = {}
for key,value in dot_105.items():
containing = [key in d and d[key]==value for d in (dot_110, dot_81, dot_82, dot_100)]
if all(containing):
comm_one[key] = value
elif not any(containing):
print(key, value,' is only in dot_105.')
答案 1 :(得分:1)
还有一个建议,如何使用Set Data结构返回相交的数据
从Python 2.6版开始,你可以使用多个参数来设置set.intersection(),比如
https://docs.python.org/2/library/stdtypes.html#set
intersected_data = set.intersection(dot_105.iteritems(),dot_110.iteritems() ,dot_81.iteritems(), dot_82.iteritems(), dot_100.iteritems()
)