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的提示会简化你的代码。