我正在尝试从由嵌套字典和列表组成的字典中进行打印。不幸的是,我在使用foo
从列表中打印项目时遇到了麻烦。这是我的代码:
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'
我尝试将str()函数放在animal_info [key]前面,该函数可以进行串联,但包括这样的列表括号。
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
我希望输出看起来像这样:
Animal type: dogs
name: ['scout', 'sulley']
color: white & orange
alias: ['skump', 'skulley']
如何在嵌套字典内的字典中指定列表中的项目索引,以便字符串串联起作用?另外,有没有一种方法可以使列表的连接在不保留列表括号[]的情况下与程序一起使用?任何帮助表示赞赏!
答案 0 :(得分:2)
在连接到字符串之前,必须加入列表才能将它们转换为字符串。可以使用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(f'Animal type: {animal_type}')
for key, value in animal_info.items():
if isinstance(value, list):
print(f"{key}: {', '.join(value)}")
else:
print(f'{key}: {value}')
:
{{1}}
答案 1 :(得分:0)
使用连接方法(字符串):
if isinstance(animal_info[key], list):
print(key + ':' + ','.join(animal_info[key]);