【发布时间】:2020-06-14 11:08:29
【问题描述】:
所以我正在使用速成课程 2e。
我在前 6-7:“从你为练习 6-1(第 102 页)编写的程序开始。创建两个代表不同人的新字典,并将所有三个字典存储在一个名为
的列表中人 .循环浏览您的人员列表。当您遍历列表时,打印您所知道的关于每个人的所有信息。”
我的代码格式如下(出于隐私原因,值已替换为“值”:
people = []
#add person to empty list
person = {
'first_name' : 'value',
'last_name' : 'value',
'city' : 'value',
}
people.append(person)
#add person to empty list
person = {
'first_name' : 'value',
'last_name' : 'value',
'city' : 'value',
}
people.append(person)
#add person to empty list
person = {
'first_name' : 'value',
'last_name' : 'value',
'city' : 'value',
}
people.append(person)
#verify list has persons added
print(people)
现在对于 for 循环部分,是否可以访问与列表中每个字典关联的键和值?我试过但失败了。我以为我可以用字典做我所做的事情,例如:
for key, value in people.items():
然后在 print 调用中使用 f 字符串跟进。
我知道如果 'people' 是字典,它会起作用,但我假设发生以下错误,因为它是一个列表: "AttributeError: 'list' 对象没有属性 'items'"
所以,简而言之:
如果 .items() 前面是一个嵌套有字典的列表,是否不能循环使用它?在上述情况下,我将如何访问每个键值对?
有没有比我最终开始工作的更简单的方法:
for person in people:
name = f"{person['first_name'].title()} {person['last_name'].title()}"
residence = f"{person['city'].title()}"
print(f"{name} lives in {residence}.")
提前谢谢各位!
【问题讨论】:
-
只需在
for key, value in person.items():上嵌套一个循环在您的for person in people:循环内。 (记得进一步缩进内部循环中的语句。)
标签: python list loops dictionary