#nested-for-loop
Вопрос:
У меня есть следующий словарь, который содержит вложенные словари:
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}
}
Если птица в этом списке действительно агрессивна, я должен распечатать заявление со словами «Прикрой голову». Я не могу понять, как заставить Python перебирать каждый элемент списка и печатать что-то только в том случае, если птица агрессивна. Пожалуйста, посоветуйте.
Ответ №1:
Попробуйте это, которое повторяет значения словаря:
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!")
Любой из способов работает; в основном это зависит от ваших предпочтений.
Комментарии:
1. Спасибо вам за ответ