首页 > 解决方案 > 如何在我的嵌套字典中打印具有特定值的键?

问题描述

我有这本字典,我想打印有节食食肉动物的钥匙的名称和 4 岁的钥匙。但是当我运行我的代码时,什么也没有发生。我怎样才能得到钥匙?

我的代码:

pets = { 'Dog': {'name': 'Rex', 'age': 4, 'diet': 'carnivore', 'gray':False },
     'Cat': {'name': 'Betty', 'age': 10, 'diet': 'carnivore', 'gray':True },
     'Rabbit': {'name': 'Simon', 'age': 4, 'diet': 'herbivore', 'gray': True},
     'Fish': {'name': 'Fluffy', 'age': 1, 'diet': 'herbivore', 'gray': False}}
            

for key, value in pets.items():
if 'carnivore' in value:
     print(key)
if 4 in value:
     print(key)

预期输出:

和:

兔子

标签: python

解决方案


这是一个嵌套的dict,所以循环体必须稍微复杂一点:

for key, dct in pets.items():
    if 'carnivore' in dct.values():
        print(key)
    if 4 in dct.values():
        print(key)

当然,dict如果您知道希望绑定到该值的键,则对值进行包含检查并不理想:

for key, dct in pets.items():
    if dct.get('diet') == 'carnivore':
        print(key)
    if dct.get('age') == 4:
        print(key)

推荐阅读