我已经阅读了很多关于嵌套词典和列表(例如Object vs. Dictionary: how to organise a data tree?)的SO帖子,但是我仍然不知道何时选择不同的数据结构。
我经常发现自己开始使用例如列表字典进行编程,然后,哦,我需要添加其他内容,让列表中的每个值成为一个元组,然后再添加其他内容...嵌套列表和字典的科学怪人。
然后我尝试花费更多时间尝试用注释记录数据结构,然后对它进行编码。我还认为下一个程序员很难使用。似乎我只是使一切变得复杂。在这一点上,我认为要制作类来处理它。具有属性的类似乎并不理想。
这是一个基本示例:
dict = {
heading1 : [
(value1, id1), (value2, id2)
],
heading2 : [
(value3, id3), (value4, id4)
],
}
如何编码上述数据结构以使其更容易理解和维护?
答案 0 :(得分:0)
您的包含元组列表的复杂词典可以用对象替换。
dict = {
heading1 : [
(value1, id1), (value2, id2)
],
heading2 : [
(value3, id3), (value4, id4)
],
}
相反,您可以尝试以下方法。这不是一个很好的例子,但是提供了一个可能的工作原理。
class Thing:
headings = [] # This will be a list of Headings
class Heading:
values = [] # This will be a list of values, of whatever type you need (e.g. string)
像这样使用它:
heading = Heading()
heading.values.append("Test value")
thing = Thing()
thing.headings.append(heading)
print(thing.headings[0].values[0]) # Prints "Test value"