编辑:如果它对上下文有帮助,我实际上是在尝试将其概括为在 for 和 while 循环中工作,我希望这样的东西在其中工作
if dictA[certainkey:'certainvalue'] == dictB[certainkey:'certainvalue']:
return True
原始问题: 有没有办法在 Python3 中比较两个字典中的相同键,看看它们是否具有相同的值?
比如说,假设
dictA = {1:'Y', 2:'E', 3:'E'}
dictB = {1:'Y', 2:'A', 3:'W'}
如果 dictA 中的一组特定键值对与 dictB 中的同一组键值对匹配,我希望程序返回一个 True 值。在这种情况下,键 1 在 dictA 和 dictB 中都与值“Y”配对。不知道有没有什么好的方法,自然就试了一下
print(dictA[1:'Y'] == dictB[1:'Y'])
希望得到一个 True 打印给我。由于它不起作用(而且我对字典还不够了解),我想知道是否有其他方法可以做到这一点。谢谢!
最佳答案
您可以在相等的(键,值)对上合并字典,然后对合并后的字典运行后续检查。
>>> dictA = {1:'Y', 2:'E', 3:'E'}
>>> dictB = {1:'Y', 2:'A', 3:'W'}
>>>
>>> merged = dict(dictA.items() & dictB.items())
>>> merged
{1: 'Y'}
>>>
>>> 1 in merged
True
>>> 3 in merged
False
创建 merged
很轻松,因为 dict.keys
、dict.values
和 dict.items
的返回值> 支持关于联合、交集等操作的set
接口(interface)
警告:在你的字典中需要可散列的值。如果您有不可散列的值,请通过
创建merged
>>> b_items = dictB.items()
>>> merged = dict(pair for pair in dictA.items() if pair in b_items)
关于 python 3 : Comparing a specific pair of keys and values between two dictionaries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52692537/