当我添加到我的字典中的列表时,它实际上并没有添加到列表中? python
When i add to the list in my dictionary, it doesn't actually add to the list? python
所以,我做了一个字典,叫做 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"))
我希望这部分代码添加到列表中的值,如果列表中的值超过三个,则删除第一个,然后如果字典中没有条目那个名字;创建一个条目,但它没有这样做。有人可以帮忙吗?谢谢!
您当前所做的相当于:
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])
所以,我做了一个字典,叫做 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"))
我希望这部分代码添加到列表中的值,如果列表中的值超过三个,则删除第一个,然后如果字典中没有条目那个名字;创建一个条目,但它没有这样做。有人可以帮忙吗?谢谢!
您当前所做的相当于:
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])