python 3 : Comparing a specific pair of keys and values between two dictionaries

标签 python python-3.x dictionary

编辑:如果它对上下文有帮助,我实际上是在尝试将其概括为在 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.keysdict.valuesdict.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/

相关文章:

python-3.x - 忽略 SSL 证书验证有什么影响?

python - 我想用列表中的双引号替换单引号

mysql - 无法使用 pymysql 从我的 sql 数据库检索数据

python - 在python中将元组转换为字典

python - 字典和字典列表 : conversion and when to use which

python - 删除 pandas 数据框中的重复记录,但根据字母顺序保留一条记录

python - 创建新列时日期转换不起作用

python - 使用 lambda 在回调中设置属性

python - 在 pandas 数据框中添加错误日志消息行

python - 从字典列表中返回最大的字典和