到目前为止,我的代码是
class_1={"Bob":[5,3,4,5,6,7],"Jack":[4],"Rob":[7]}
class_2={"Alex":[5],"Steve":[4],"John":[7]}
class_3={"Adrien":[5],"Morgan":[3]}
score=int(input("Enter a number"))
name=input("What is your name?")
userClass=int(input("class?"))
if userClass ==1:
if name in class_1:
class_1[name].append(score)
else:
class_1[name]=score
elif userClass ==2:
if name in class_2:
class_2[name].append(score)
else:
class_2[name]=score
elif userclass ==3:
if name in class_3:
class_3[name].append(score)
else:
class_3[name]=score
问题是每当我输入一个不在任何词典中的名称时,它会将数字(值)添加为整数而不是列表格式。这使我无法订购分数,因为它们的格式不同。
请帮帮我!我已经尝试了几个小时。
答案 0 :(得分:3)
一个简单的解决方案是只在列表中插入一个列表:
if userClass ==1:
if name in class_1:
class_1[name].append(score)
else:
class_1[name]=[score]
但是使用default dicts可能会更加pythonic并解决这个问题。 E.g。
from collections import defaultdict
class_1 = defaultdict(list)
for name, score in [("Bob", [5,3,4,5,6,7]), [...]]:
class_1[name].append(score)
答案 1 :(得分:1)
您需要先设置一个空列表,然后才能追加它。尝试将class_1[name]=score
更改为class_1[name]=[score]
。这将创建一个包含一个整数元素的列表,然后您可以将其追加到该列表中。