您可以将列表附加到字典吗?

新手上路,请多包涵

所以我需要创建一个列表来保存用户输入(一个名字和他们的 3 个分数),然后将此信息附加到 3 个文件之一。我尝试通过将数据附加到列表然后将列表附加到字典来执行此操作,但这似乎不起作用。我真的是 python 的新手,所以非常感谢任何帮助。到目前为止,这是我的代码:

 dict1 = {}
dict2 = {}
dict3 = {}
list1 = []
list2 =[]
list3 =[]

def main():
    name= input ('What is your name?')
    for i in range(0,3)
        score = input("Enter your score: ")
        clss =input('which class?')
        if clss==1:
            list1.append (name, score)
        elif clss==2:
            list2.append (name, score)
        elif clss==3:
            list3.append (name, score)

在这里,我想根据类别将列表附加到 3 个词典之一:

 def loop():
    x=input('Do you want to make an entry?')
    if x=='Yes':
        main()
    elif x=='No':
        sys.exit(0)

loop()

原文由 Rutwb2 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 452
2 个回答

您需要在字典中包含列表才能附加到它们。你可以这样做:

 scores = {"class1": [], "class2": [], "class3": []}

def main():
    name= input ('What is your name?')
    for i in range(0,3)
        score = input("Enter your score: ")
        clss =input('which class?')
        if clss==1:
            scores["class1"].append({"name": name, "score": score})
        elif clss==2:
            scores["class2"].append({"name": name, "score": score})
        elif clss==3:
            scores["class3"].append({"name": name, "score": score})
    print scores

原文由 Teemu Kurppa 发布,翻译遵循 CC BY-SA 3.0 许可协议

您是否尝试过使用 defaultdict ?来自 python 文档的示例:

 >>> s = 'mississippi'
>>> d = defaultdict(int)
>>> for k in s:
...     d[k] += 1
...
>>> d.items()
[('i', 4), ('p', 2), ('s', 4), ('m', 1)]

您可以 在此处 查看另一个使用 defaultdict 的示例

原文由 Aleksander Monk 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题