Python 如何将值作为列表写入字典

Python 如何将值作为列表写入字典,python,dictionary,Python,Dictionary,到目前为止,我的代码是 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 user

到目前为止,我的代码是

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
问题是,每当我输入一个不在任何字典中的名称时,它都会将数字(值)作为整数添加,而不是以列表格式添加。这使我以后无法对分数进行排序,因为它们的格式不同


请帮帮我!我已经尝试了几个小时。

您需要先设置一个空列表,然后才能附加到它。尝试将
class_1[name]=score
更改为
class_1[name]=[score]
。这将创建一个包含一个整型元素的列表,然后可以将其追加到。

在追加到列表之前,需要设置一个空列表。尝试将
class_1[name]=score
更改为
class_1[name]=[score]
。这将创建一个包含一个整型元素的列表,您随后可以将其附加到该列表中。

一个简单的解决方案是只需在dict中插入一个列表:

if userClass ==1:
    if name in class_1:
        class_1[name].append(score)
    else:
        class_1[name]=[score]
但使用可能会更像蟒蛇,也能解决这个问题。例如

from collections import defaultdict
class_1 = defaultdict(list)
for name, score in [("Bob", [5,3,4,5,6,7]), [...]]:
    class_1[name].append(score)

一个简单的解决方案是在dict中插入一个列表:

if userClass ==1:
    if name in class_1:
        class_1[name].append(score)
    else:
        class_1[name]=[score]
但使用可能会更像蟒蛇,也能解决这个问题。例如

from collections import defaultdict
class_1 = defaultdict(list)
for name, score in [("Bob", [5,3,4,5,6,7]), [...]]:
    class_1[name].append(score)

有没有办法计算出列表的平均值或从列表中找到最高值?是的--max()和numpy.mean()请看投票率较高的答案,默认dicts更适合您的用例为什么?你这样做有什么缺点吗?我想我们的答案是一样的,但是@syntonym关于使用默认dicts的提示会简化你的代码。有没有办法计算出列表的平均值或从列表中找到最高值呢?是的--max()和numpy.mean()请看投票率较高的答案,默认dicts更适合您的用例为什么?你这样做有什么缺点吗?我想我们的答案是一样的,但是@syntonym关于使用默认dict的提示会简化你的代码。