比较两个字典的值

2024-04-24 04:14:19 发布

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

我有两本字典如下:

a = {1:2, 3:4, 5:6}
b = {1:5, 3:6, 7:1}

对于a中的每个键,我要检查该键是否存在于b,如果存在,我要打印两个键的值,如果不存在,我将0打印为b中键的值:

for key in a.keys():
    if key in b.keys():
        print key, a[key], b[key]
    else:
        print key, a[key], '0'

输出为:

1 2 5
3 4 6
5 6 0

但是,我还想打印b中键的值,如果它不存在于a,这与上一条语句相反,如果键在b中,但不在a,则打印b0中键的值作为a中键的值。输出为:

1 2 5
3 4 6
5 6 0
7 0 1

这应该很简单,但我不知道怎么做。谢谢!你知道吗


Tags: keyinforif字典语句keyselse
3条回答
for key in set(a.keys()) | set(b.keys()):
    print key, a.get(key, 0), b.get(key,0)

|表示集合上下文中的并集。您还可以将结果集转换为列表,并在迭代之前对其进行排序。你知道吗

如果我理解正确,您希望遍历任一字典中的所有键,并打印两个字典中的值,如果该字典中缺少键,则使用'0'。像这样:

for key in set(a)|set(b):
    print key, a.get(key, '0'), b.get(key, '0')

set(a)|set(b)是来自每个字典的键集的并集(即,它是来自任一字典的不同键的集合)。你知道吗

dictionary.get(key, '0')如果字典中缺少键,则返回'0'。你知道吗

使用dict bget方法,在找不到键时提供一个默认值。你知道吗

for key in a:
    print key, a[key], b.get(key, '0')

相关问题 更多 >