[英]Comparing two Python dicts: CS50 PSET6 DNA
需要一些帮助来比较 Python 中的两个字典。
我想看看result_dict中的所有键:值对是否与database_dict中任何相应的键:值对匹配。 如何遍历不同的result_dict.keys以检查相应的值是否与database_dict中的匹配? 如果存在完全匹配,则返回“名称”。 谢谢你的帮助。 字典如下:
结果字典:
{'AGATC': 4, 'AATG': 1, 'TATC': 5}
数据库字典:
OrderedDict([('name', 'Alice'), ('AGATC', '2'), ('AATG', '8'), ('TATC', '3')])
OrderedDict([('name', 'Bob'), ('AGATC', '4'), ('AATG', '1'), ('TATC', '5')])
OrderedDict([('name', 'Charlie'), ('AGATC', '3'), ('AATG', '2'), ('TATC', '5')])
下面function返回匹配result_dict的人名。 它使用 pop 删除名称值并将分数转换为整数以允许与 result_dict 进行比较。
database_dicts = [OrderedDict([('name', 'Alice'), ('AGATC', '2'), ('AATG', '8'), ('TATC', '3')]),
OrderedDict([('name', 'Bob'), ('AGATC', '4'), ('AATG', '1'), ('TATC', '5')]),
OrderedDict([('name', 'Charlie'), ('AGATC', '3'), ('AATG', '2'), ('TATC', '5')])]
result_dict = {'AGATC': 4, 'AATG': 1, 'TATC': 5}
def get_name(database_dicts, result_dict):
names = []
for dd in database_dicts:
name = dd['name']
dd.pop('name')
dd = {key: int(value) for key, value in dd.items()}
if dd == result_dict:
names.append(name)
return names
names = get_name(database_dicts, result_dict)
print(names)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.