所以,我创建了一个名为groupA的字典,我希望保留名字和多个分数。分数来自一个名为count的变量,它取决于我的代码的另一部分的测验。我的代码为一个键添加了多个值,但是我希望它们都在一个列表中,不管出于什么原因都不会发生。这是我的代码:
name = input("What is your name? ")
while name.isdigit():
print ("That's not a name.")
name = input("What is your name? ")
group = input("Which group are you in; A, B or C: ")
if group == "A":
if name in groupA:
groupA = pickle.load(open("groupA.p", "rb"))
score = [count]
groupA[name].append(score)
numberofvalues = len(score)
if numberofvalues > 3:
print("Deleting oldest score.")
score.pop(1)
print(score)
pickle.dump(groupA, open("groupA.p", "wb"))
else:
score = [count]
groupA[name] = [score]
pickle.dump(groupA, open("groupA.p", "wb"))
我希望代码的这一部分要么添加到列表中的值,如果列表中有三个以上的值,请删除第一个,然后如果没有该字典的条目那个名字;创建一个条目,但它没有这样做。有人可以帮忙吗?谢谢!
答案 0 :(得分:0)
您目前正在做的事情相当于:
groupA[name].append([count]) # this appends a list to the list
这样做
groupA[name].append(count) # count must be single value
在其他部分
groupA[name] = [count] # creating new single-element list
此外,len(scores)
将始终为1.将其替换为:
numberofvalues = len(groupA[name])