Python如何组织数据,而不是嵌套的字典和列表

时间:2019-07-17 20:45:47

标签: python dictionary

我已经阅读了很多关于嵌套词典和列表(例如Object vs. Dictionary: how to organise a data tree?)的SO帖子,但是我仍然不知道何时选择不同的数据结构。

我经常发现自己开始使用例如列表字典进行编程,然后,哦,我需要添加其他内容,让列表中的每个值成为一个元组,然后再添加其他内容...嵌套列表和字典的科学怪人。

然后我尝试花费更多时间尝试用注释记录数据结构,然后对它进行编码。我还认为下一个程序员很难使用。似乎我只是使一切变得复杂。在这一点上,我认为要制作类来处理它。具有属性的类似乎并不理想。

这是一个基本示例:

dict = {
    heading1 : [
        (value1, id1), (value2, id2)
    ],
    heading2 : [
        (value3, id3), (value4, id4)
    ],
}

如何编码上述数据结构以使其更容易理解和维护?

1 个答案:

答案 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"