我正在为机器人团队编写一个程序,我在竞争期间收集数据,找到最佳团队与“联盟”。它需要收集大约20个值,并且需要能够通过各种参数列出数据。我已经完成了很多框架,但似乎当我将数据附加到列表时,它会在我追加时将所有条目更改为。
例如,如果我有
data = [{"teamNumber":1345,"teamName":"Blah"}]
并尝试追加
{"teamNumber":3219,"teamName":"TREAD"}
使用append()数据我最终得到
data = [{"teamNumber":3219,"teamName":"TREAD"},{"teamNumber":3219,"teamName":"TREAD"}]
目前我们正在使用此功能添加数据(它有大部分不必要的“肉”修剪)
def inputTeamData():
global data
clear()
temp = dataTemplate
temp["teamNumber"] = question("Team Number?: ")
temp["teamName"] = question("Team Name?: ")
temp["foundingSeason"] = question("Founding Season?: ")
save = question("Is the above data correct?(y/n): ")
if save.lower() == "y":
try:
data.append(temp)
except ValueError:
print "ValueError. You gave me the wrong data types"
sleep(1)
else:
print "Not saved"
sleep(.8)
我不知道是什么给了,即使答案更可能是愚蠢的显而易见我无法找到问题。
无论如何,非常感谢任何可以帮助我的人的建议!
答案 0 :(得分:6)
您首先需要学习一些Python基础知识:
temp = dataTemplate
不会将dataTemplate
复制到新变量temp
!相反,它将别名“temp”赋予您名为“dataTemplate”的原始字典。
每次编写temp[ .. ] =
时都会修改相同的原始字典,因为“temp”只是“dataTemplate”的别名。
你想要
temp = dataTemplate.copy()