比较在python中两个字典的同一索引中找到的键值对

2024-06-26 13:16:09 发布

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

我想比较两个字典的键值对。以这样的方式进行比较,第一字典的第一项与第二字典的第一项进行比较,第二项与第二项进行比较,并且如下所示

词典的结构如下:

dep_feats = {0: {'Gender': {'Masc'}, 'Number': {'Sing'}, 'Person': {'3'}}, 1: {}, 2: {'Number': {'Sing'}, 'Person': {'3'}}, 3: {'Gender': {'Masc'}, 'Number': {'Sing'}, 'Person': {'3'}, 'Tens': {'Past'}, 'Voice': {'Act'}}, 4: {}}

以及

head_feats = {0: {'Gender': {'Masc'}, 'Number': {'Sing'}, 'Person': {'3'}, 'Tens': {'Past'}, 'Voice': {'Act'}}, 1: {'Number': {'Sing'}, 'Person': {'3'}}, 2: {'Gender': {'Masc'}, 'Number': {'Sing'}, 'Person': {'3'}, 'Tens': {'Past'}, 'Voice': {'Act'}}, 3: {}, 4: {'Gender': {'Masc'}, 'Number': {'Sing'}, 'Person': {'3'}, 'Tens': {'Past'}, 'Voice': {'Act'}}}
for i in range(len(dep_feats)):
    for j in range(len(head_feats)):
        if i == j:
            if dep_feats[i].items() == head_feats[i].items():
                print(dep_feats[i].items())

Tags: numberfor字典itemsgenderactheadperson
2条回答

我认为如果您的目的是在同一个键中进行比较,那么您应该创建一个包含两个字典中的公共键的集合,然后比较它们的值

common_keys = set(dep_feats).intersection(set(head_feats))

for key in common_keys:
    if dep_feats[key].items() == head_feats[key].items():
        print(dep_feats[key])

这样,您就可以通过删除嵌套for循环来降低时间复杂度

这可以通过zip()实现

for dep, head in zip(dep_feats.items(), head_feats.items()):
    if dep == head:
        print(dep)

相关问题 更多 >