在Python中使用多个条目格式化Dictionary的正确方法

时间:2018-05-03 02:21:22

标签: python dictionary

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

例如,如果您只有一名学生,这会很有效......

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 = ...

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

由于

3 个答案:

答案 0 :(得分:2)

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

Switch

现在您可以按键引用单个词典:

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]}

答案 1 :(得分:1)

您需要选择能够快速访问学生记录的密钥。这个名字似乎最有用:

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

然后您可以使用students['Fred']获取Fred的记录。

答案 2 :(得分:1)

首先,您应该在词典中使用词典。例如:

people = {   "John":{"age":15, "school":"asborne high"},
             "Alex":{"age":32, "work":"microsoft"},
             "Emily":{"age":21, "school":"florida state"}   }

使用此方法,您可以仅通过名称有效地索引任何值:

print(people["Alex"]["age"])

其次,如果您为了可读性和易用性而进行拍摄,请确保正确格式化多维字典对象。我的意思是你应该尽量坚持自定义对象的两个数据结构。如果你需要组织一个狗列表,颜色,名称和年龄,你应该使用类似这样的结构:

dogs = {     "Lisa":{"colors":["brown","white"], "age":4 }, 
             "Spike":{"colors":["black","white"], "age":10}    }

请注意我不会在元组和列表或字典和列表之间切换。坚持是关键。

在组织数字数据时,坚持相同的概念。

numbers = {     "A":[2132.62, 422.67, 938.2218113, 3772.7026994],
                "B":[5771.11, 799.26, 417.9011772, 8922.0116259],
                "C":[455.778, 592.224, 556.657001. 66.674254323]    }