我有以下代码,它是一个地址簿(字典列表)和一个列表。这样做的目的是按照列表的顺序打印字典中的条目(因为dicts打乱了所有内容的顺序)。当我运行这段代码时,它抛出一个异常(如下所示)。我不知道我做错了什么,因为我已经尝试了很多不同的变化,我不断回到这个问题,想知道为什么它不工作。你知道吗
请帮忙?你知道吗
addressBook = [
{
'Nickname': 'Jimmy',
'Name': 'James Roberts',
'Address': '2/50 Robe Street',
'Phone': '0273503342'
},
{
'Nickname': 'Bob',
'Name': 'Robert',
'Address': '1 Vivan Street',
'Phone': '067578930'
}
]
addressFields = ['Nickname', 'Name', 'Address', 'Phone']
def listAll(addressBook, addressFields):
for i in addressBook:
for key in addressFields:
print("{0} {1}".format(key, addressBook[i][key]))
print("{0} {1}".format(key, addressBook[i][key]))
TypeError: list indices must be integers, not dict
或者在单行中:
首先,在
'James Roberts
之后的addressBook
文本中缺少'
。其次,问题是你在做addressBook[i][key]
而不是i[key]
。i
已经引用了addressBook
中包含的字典,因此您的代码试图使用list
的元素作为自身的索引。你知道吗Python 3友好的一行代码:
相关问题 更多 >
编程相关推荐