python - 我如何比较这两个字典(其中一个是嵌套的)?[Python]
问题描述
我这里有两本字典,我想比较一下
dict1 = {
'Alice': {'AGATC': '2', 'AATG': '8', 'TATC': '3'},
'Bob': {'AGATC': '4', 'AATG': '1', 'TATC': '5'},
'Charlie': {'AGATC': '3', 'AATG': '2', 'TATC': '5'},
}
dict2 = {'AGATC': '4', 'AATG': '1', 'GATA': '2', 'TATC': '5', 'GAAA': '3'}
我如何比较这两者以查看存在的值清楚地表明 Bob 具有所有相同的值?感谢你
解决方案
问题不够清楚,请尝试澄清错误或您的预期。
如果您的意思是要检查字典 'dict1' 的项是否存在于字典 'dict2' 的项中,但值不完全相同,您可以试试这个:
dict1 = {
'Alice': {'AGATC': '2', 'AATG': '8', 'TATC': '3'},
'Bob': {'AGATC': '4', 'AATG': '1', 'TATC': '5','jjj':'5'},
'Charlie': {'AGATC': '3', 'AATG': '2', 'TATC': '5'},
}
dict2 = {'Bob': {'AGATC': '4', 'AATG': '1', 'TATC': '5'}}
for i in dict1:
for j in dict2:
if set(dict2[j].items()).issubset(set(dict1[i].items())):
print(i)
输出:
>>> Bob
但是,如果你想检查它是否存在完全相同的值,你只需添加 if 语句:
dict1 = {
'Alice': {'AGATC': '2', 'AATG': '8', 'TATC': '3'},
'Bob': {'AGATC': '4', 'AATG': '1', 'TATC': '5','jjj':'5'},
'Charlie': {'AGATC': '3', 'AATG': '2', 'TATC': '5'},
}
dict2 = {'Bob': {'AGATC': '4', 'AATG': '1', 'TATC': '5'}}
for i in dict1:
for j in dict2:
if set(dict2[j].items()).issubset(set(dict1[i].items())) and dict2[j] == dict1[i]:
print(i)
没有输出:
>>>
推荐阅读
- swift - 如何在 XCode Playground 中保存控制台输出?
- android - 将子视图控制器膨胀到父视图控制器中的固定位置
- php - Laravel:csv 验证
- powerbi - M 幂查询 - 重建此数据组合
- c++ - 对函数的 AST 声明的抽象格式感到困惑
- dc.js - crossfilter Reduce 得到最小值
- c++ - (Windows) 使用 ftello() 为“一些”二进制文件返回不正确的文件大小
- python - PyQt QTableView - 捕获 KeyDown / KeyPress 事件
- android - 在镜头模式下在 Android 上打开谷歌助手
- julia - 在 Julia 中,为什么函数的作用域规则与其他第一类对象相比显得不一致?