在这里我想比较两个字典
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具有所有相同的值?谢谢你
答案 0 :(得分:0)
您可以利用所有功能(检查dict2
中所有Bob的键和值是否相等)
for user, items in dict1.items():
result = all(dict2.get(k) == v for (k, v) in items.items())
print("%s: %s" % (user, result))
输出:
Charlie: False
Bob: True
Alice: False
答案 1 :(得分:0)
这个问题还不够清楚,请尝试弄清楚错误是什么或您确切期望的是什么。
如果您要检查字典“ dict2”的项中是否存在字典“ dict1”的项,但值不完全相同,则可以尝试以下操作:
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)
没有输出:
>>>