首页 > 解决方案 > 在 Python 中使用多个条目格式化 Dictionary 的正确方法

问题描述

我只是好奇在 Python 中构建具有多个条目的字典的最佳/最有效方法是什么。它可以是学生或员工等的字典。为了论证,每个条目都有一个“名称”键/值和一些其他键/值对。

例如,如果您只有一个学生,这将非常有用......

student_dict = {'name': 'John', 'age': 15, 'grades':[90, 80, 75]}

这是正确的方法吗?每个字典条目一个变量?不知何故,我不认为它是:

student_1 = {'name': 'Fred', 'age': 17, 'grades':[85, 80, 75]}
student_2 = {'name': 'Sean', 'age': 16, 'grades':[65, 70, 100]}
student_3 = ...

我确信有一种简单的方法来构建它,可以很容易地添加新条目并在一个位置搜索现有条目,我只是无法绕过它。

谢谢

标签: pythondictionary

解决方案


使用字典或列表来存储字典。由于您似乎希望能够按名称引用单个字典,因此我建议使用字典字典:

students = {'student_1': {'name': 'Fred', 'age': 17, 'grades':[85, 80, 75]},
            'student_2': {'name': 'Sean', 'age': 16, 'grades':[65, 70, 100]}}

现在您可以按键引用各个字典:

>>> students['student_1']
{'name': 'Fred', 'age': 17, 'grades': [85, 80, 75]}

如果您不关心名称,或者需要保留顺序,请使用列表:

students = [{'name': 'Fred', 'age': 17, 'grades':[85, 80, 75]},
            {'name': 'Sean', 'age': 16, 'grades':[65, 70, 100]}]

通过索引访问它们:

>>> students[0]
{'name': 'Fred', 'age': 17, 'grades': [85, 80, 75]}

或遍历它们:

for student in students:
    print(student['name'], student['age'], student['grades'])

推荐阅读