我的练习有问题,要求我循环浏览我的人员列表,并在为每个人使用字典时打印我所知道的关于每个人的所有内容。我试图通过让Python接受并遍历我的词典来开始,但每当我尝试运行我的代码时,我都会收到一条错误消息:"值错误:解压缩的值太多了。 (预期2)"
dictionaries_v = {
'first_name': 'victor',
'last_name': 'croc',
'age': 21,
'city': 'new york',
}
dictionaries_c = {
'first_name': 'charmy',
'last_name': 'bee',
'age': 8,
'city': 'new york',
}
dictionaries_e = {
'first_name': 'espio',
'last_name': 'armadilo',
'age': 15,
'city': 'new york',
}
people = ['dictionaries_v', 'dictionaries_c', 'dictionaries_e']
for key, value in people:
print( "\n" + key + ": " + value)
感谢您的时间。
答案 0 :(得分:3)
您的第一个问题是您的列表中包含三个字符串。注意你是如何包装它的引号的。因此,当您遍历列表时,您绝对不会得到您期望的字典。
其次,people
是list
。因此,当您迭代列表时,迭代器将在每次迭代时保存字典。
了解这一点,您只需要像其他任何列表一样迭代您的列表:
people = [dictionaries_v, dictionaries_c, dictionaries_e]
for d in people:
print(d)
您的输出将如下所示:
{'last_name': 'croc', 'age': 21, 'first_name': 'victor', 'city': 'new york'}
{'last_name': 'bee', 'age': 8, 'first_name': 'charmy', 'city': 'new york'}
{'last_name': 'armadilo', 'age': 15, 'first_name': 'espio', 'city': 'new york'}
要从字典中获取特定信息,只需在每次迭代中使用该键即可。简单的例子:
for d in people:
print(d['last_name'])
答案 1 :(得分:0)
people
是一个列表。您只能从列表中一次获取一个值。但是,它的元素是字典。因此,以下循环可行:
for element in people:
for key, value in element:
print( "\n" + key + ": " + value)
外部循环遍历people
中的每个字典,并将element
设置为该字典。内部循环遍历该字典并将key
设置为键,将value
设置为值。
另外,您将people
设置为['dictionaries_v', 'dictionaries_c', 'dictionaries_e']
。不是将每个元素设置为字符串,而是将其设置为变量本身:[dictionaries_v, dictionaries_c, dictionaries_e]
。
答案 2 :(得分:0)
您要在列表中添加字符串。请使用变量名称。
people = [dictionaries_v, dictionaries_c, dictionaries_e]
编辑: 添加更多代码来解决下面解压缩的问题。
for person in people:
for key,value in person:
print key, " : ", value