我只是好奇在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 = ...
我确信有一种简单的方法来构建这个,在这里可以很容易地添加新条目并在一个位置搜索现有条目,我只是无法绕过它。
由于
答案 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] }