比较两种Python指令:CS50 PSET6 DNA

2024-09-29 02:18:55 发布

您现在位置:Python中文网/ 问答频道 /正文

需要一些帮助来比较Python中的两个dict

我想看看结果\u dict中的所有键:值对是否与数据库\u dict中的任何对应键:值对匹配。如何迭代不同的结果目录键,以检查相应的值是否与数据库目录中的值匹配?如果存在完全匹配,则返回“name”。谢谢你的帮助。格言如下:

结果如下:

{'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')])

Tags: name目录数据库dictordereddictbobalicecharlie
1条回答
网友
1楼 · 发布于 2024-09-29 02:18:55

以下函数返回与结果匹配的人员的姓名。它使用pop删除姓名值,并将分数转换为整数,以便与结果进行比较

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)

相关问题 更多 >