Я пытаюсь распечатать из словаря, который состоит из вложенного словаря и списка.К сожалению, у меня проблемы с печатью элементов из списка с length > 1
.Вот мой код:
animals = {
'cats': {
'name': 'moose',
'color': 'black & white',
'alias':'Moosalini'
},
'dogs': {
'name': ['scout', 'sulley'],
'color': 'white & orange',
'alias': ['skump', 'skulley']
}
}
for animal_type, animal_info in animals.items():
print('Animal type: ', animal_type)
for key in animal_info:
print(key + ': ' + animal_info[key])
Вывод - именно то, что я хочу, пока не попадет в список, связанный с 'name'
под ключом 'dogs'
.Мой код не будет объединять список, потому что это не строка.Я думал, что можно объединить списки так же, как строки?
Animal type: cats
name: moose
color: black & white
alias: Moosalini
Animal type: dogs
Traceback (most recent call last):
File "/Users/Jaron/Documents/nested dictionary.py", line 14, in <module>
print ( key + ': ' + animal_info[key])
TypeError: can only concatenate str (not "list") to str
Я попытался поместить функцию str () перед animal_info [ключ], которая позволяет объединение, но включает в себя заключенный в скобки список, как этот.
Animal type: dogs
name: ['scout', 'sulley']
color: white & orange
alias: ['skump', 'skulley']
Я бы хотел, чтобы выходные данные выглядели следующим образом:
Animal type: cats
name: moose
color: black & white
alias: Moosalini
Animal type: dogs
name: scout, sulley
color: black & white
alias: skump, skulley
Как определить индекс элемента в списке в словаре, который находится во вложенном словаре, так что конкатенация строкбуду работать?Кроме того, есть ли способ сделать так, чтобы объединение списков работало с программой без сохранения скобок списка, []?Любая помощь приветствуется!