繁体   English   中英

将字典追加到列表

[英]Appending a dict to a list

我正在为机器人团队编写程序,以便在比赛期间收集数据,以找到最能与之“联盟”的团队。 它需要收集大约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)

我不知道会有什么结果,即使答案很可能是愚蠢的,我看不到找到问题的答案。

无论如何,非常感谢能帮助我的人的建议!

您需要首先学习一些Python基础知识:

temp = dataTemplate

不会将dataTemplate复制到新变量temp 相反,它将别名“ temp”赋予您已命名为“ dataTemplate”的原始词典。 每次编写temp[ .. ] =时,您都修改相同的原始词典,因为“ temp”只是“ dataTemplate”的别名。

你要

temp = dataTemplate.copy()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM