我的任务是制作3个字典来存储有关我认识的3个人的信息,例如他们的名字,姓氏,年龄和他们居住的城市:
Sissel = {'first_name': 'Sissel', 'last_name': 'Johnsen', 'age': '23', 'city': 'Copenhagen'}
David = {'first_name': 'David', 'last_name': 'Hansen', 'age': '35', 'city': 'Randers'}
Olivia = {'first_name': 'Olivia', 'last_name': 'Petersen', 'age': '57', 'city': 'New York'}
然后我必须将它们存储在列表中:
people = [Sissel, David, Olivia]
我必须浏览我的人员清单。当我遍历列表时,它必须通过在每个字典中打印键和相关值来打印我对每个人的了解。
我尝试使用for循环:
for k, v in people:
print(k, v)
但是我收到一条错误消息
ValueError: too many values to unpack (expected 2)
答案 0 :(得分:2)
People是一个词典列表,这就是为什么它抛出太多值以致无法解包错误的原因。在Python 3中,您需要调用dict.items()
:
for person in people:
for k, v in person.items():
print(k, v)
print() # extra space between people
答案 1 :(得分:1)
您快到了。这是您需要做的:
您必须遍历列表。遍历列表时,您将一次选择一个元素。在您的情况下,每个元素都是一个字典。因此,您需要使用键来获取值。
for p in people:
print (p['first_name: '])
print (p['last_name: '])
print (p['age: '])
print (p['city: '])
除了选择每个元素之外,您还可以像这样在字典上执行for循环:
for p in people:
for k,v in p.items():
print (k,v)
答案 2 :(得分:0)
for k, v in people:
print(k, v)
people
是一个列表。您不能使用k,v来打开包装,因为每次在for循环中只有一个项目。
我只需将所有人添加到带有列表的一本字典中,然后打印:
people = {'first_name': ['Sissel', 'David', 'Olivia'], 'last_name': ['Johnsen', 'Hansen', 'Petersen'],
'age': ['23', '35', '57'], 'city': ['Copenhagen', 'Randers', 'New York']}
i = 0
while i < 3:
for k, v in people.items():
print(f'{k}:{v[i]}', end=', ')
print('\n')
i += 1