首页 > 解决方案 > 有没有办法遍历子列表并返回特定值?

问题描述

我有以下字典,其中包含嵌套字典:

rarebirds = {
    'Gold-crested Toucan': {
        'Height (m)': 1.1,
        'Weight (kg)': 35,
        'Color': 'Gold',
        'Endangered': True,
        'Aggressive': True},
    'Pearlescent Kingfisher': {
        'Height (m)': 0.25,
        'Weight (kg)' : 0.5,
        'Color': 'White',
        'Endangered': False,
        'Aggressive': False},
    'Four-metre Hummingbird': {
        'Height (m)': 0.6,
        'Weight (kg)': 0.5,
        'Color' : 'Blue',
        'Endangered' : True,
        'Aggressive' : False},
    'Giant Eagle': {
        'Height (m)' : 1.5,
        'Weight (kg)' : 52,
        'Color' : 'Black and White',
        'Endangered' : True,
        'Aggressive' : True},
    'Ancient Vulture': {
        'Height (m)' : 2.1,
        'Weight (kg)' : 70,
        'Color' : 'Brown',
        'Endangered' : False,
        'Aggressive': False}
}

如果此列表中的一只鸟真的具有攻击性,我应该打印出一份声明,上面写着“Cover your head”。我不知道如何让 Python 遍历列表的每个元素并仅在鸟具有攻击性的情况下打印某些内容。请指教。

标签: nested-for-loop

解决方案


试试这个,它遍历字典值:

rarebirds = {...}
for bird_dict in rarebirds.values():
    if bird_dict["aggressive"]:
        print("Cover your head!")

或者,您可以遍历字典的键:

rarebirds = {...}
for bird in rarebirds:
    if rarebirds[bird]["aggressive"]:
        print("Cover your head!")

无论哪种方式都有效;这主要取决于您的喜好。


推荐阅读