Вот мой словарь со значениями, которые, в свою очередь, сами являются словарями.
rarebirds = {
'Golden-crested Toucan' : {
'Height (m)': 1.1,
'Weight (kg)': 35,
'Color':'Gold',
'Endangered': True,
'Agressive': True
},
'Pearlescent Kingfisher': {
'Height (m)': .25,
'Weight (kg)': .5,
'Color':'White',
'Endangered': False,
'Agressive': False
},
'Four-metre Hummingbird': {
'Height (m)': .6,
'Weight (kg)': .5,
'Color':'Blue',
'Endangered': True,
'Agressive': False
},
'Giant Eagle': {
'Height (m)': 1.5,
'Weight (kg)': 52,
'Color':'Black and White',
'Endangered': True,
'Agressive': True
},
'Ancient Vulture': {
'Height (m)': 2.1,
'Weight (kg)': 70,
'Color':'Brown',
'Endangered': False,
'Agressive': False
}
}
Вот for
l oop, который не работает.
actions = ['Back Away',
'Cover our Heads'
'Take a Photograph']
for i in rarebirds:
if (i,'Aggressive')==True:
print(i+": "+(actions[1]))
else: print(i+ " is not aggressive")
Он выводит
Golden-crested Toucan is not aggressive
Pearlescent Kingfisher is not aggressive
Four-metre Hummingbird is not aggressive
Giant Eagle is not aggressive
Ancient Vulture is not aggressive
Но, согласно моему словарю, тукан и орел агрессивны, поэтому я хочу, чтобы for
l oop напечатал индекс [1] моего списка под названием «действия». Не уверен, почему l oop не может успешно определить логическое значение True
.
Куда я иду не так. Любая помощь будет принята с благодарностью.