nor*_*ner 1 python dictionary list
我在Python中有以下列表:
students = ["Anderson", "Peter", "Anderson", "Bastian"]
courses = ["Biology", "History", "Maths", "History"]
Run Code Online (Sandbox Code Playgroud)
我编写了一个for循环,试图在字典中关联这些对,以便:
Anderson-Biology
Peter-History
Anderson-Maths
Bastian-History
Run Code Online (Sandbox Code Playgroud)
for循环如下:
test_dict = {}
for i in range (0, len(students)):
test_dict[students[i]] = courses[i]
Run Code Online (Sandbox Code Playgroud)
但是,当打印出字典时,我得到:
{'Bastian': 'History', 'Anderson': 'Maths', 'Peter': 'History'}
Run Code Online (Sandbox Code Playgroud)
"安德森"发生了什么:'生物学,有没有办法解决这个问题?
Python词典不接受重复的键,在你的代码中它只保留最后一个'Anderson'.
相反,您可以使用dict.setdefault方法将重复的值放在列表中:
>>> d={}
>>> for i,j in zip(students,courses):
... d.setdefault(i,[]).append(j)
...
>>> d
{'Peter': ['History'], 'Anderson': ['Biology', 'Maths'], 'Bastian': ['History']}
>>>
Run Code Online (Sandbox Code Playgroud)