我对Python还是很陌生,我在用简单的代码创建字典并尝试在其中打印信息的过程中挣扎。 我创建了一个名为pets的字典,其中包含了宠物的名字作为键。这些值是包含有关宠物的信息的字典。
我想用一句话打印出宠物的名字和有关宠物的信息。
如下面的代码所示,我正在尝试创建一个for循环,该循环将为每个宠物打印一个句子。
pets = {
'maxi': {
'owner':'Laura',
'favorite food':'wiskas'
},
'chester': {
'owner':'Emilia',
'favorite food':'lula'
}
}
print(pets)
for name,info in pets.items():
print(name + "'s owner and favorite food are " + name['owner'] + ' and ' + name['favorite food'])
我收到以下错误:
回溯(最近一次通话最后一次):文件“ pets.py”,第14行,在 打印(名称+“的所有者和最喜欢的食物是” +名称['所有者'] +'和'+名称['最喜欢的食物']) TypeError:字符串索引必须为整数
答案 0 :(得分:2)
使用for name,info in pets.items()
循环时,name
实际上是一个字符串。这就是为什么会出现此错误的原因:您正在尝试访问字符串的元素。
您需要使用info
来访问内部值:
for name, info in pets.items():
print(name + '\'s owner and favorite food are ' + info['owner'] + ' and ' + info['favorite food'])
答案 1 :(得分:0)
尝试
for x in pets:
print(x + "'s owner and favorite food are " + pets[x]['owner'] + ' ' + pets[x]['favorite food'])
>>> maxi's owner and favorite food are Laura wiskas
>>> chester's owner and favorite food are Emilia lula
您的错误是“名称['所有者'] +'和'+名称['最喜欢的食物']” <-这个 由于您必须首先引用字典中的项目,因此在我们的示例中,“ x”或“ name”可以随意命名,因此您想输入他的密钥以命名,因此,pets [name] ['owner' ]除了您选择其他键外,食物也一样,在我们的例子中是“最喜欢的食物”,我希望这可以为您清除一些东西:D