【发布时间】:2019-11-26 18:13:27
【问题描述】:
我已经阅读了很多关于嵌套字典和列表的 SO 帖子(例如 Object vs. Dictionary: how to organise a data tree?),但我仍然不明白何时选择不同的数据结构。
我经常发现自己开始使用例如列表字典进行编程,然后哦,我需要添加其他内容,让列表中的每个值成为一个元组,然后还有其他内容......很快它就会很深嵌套列表和字典的科学怪人。
然后我尝试花更多时间尝试使用 cmets 记录数据结构,然后实际对其进行编码。我也仍然认为下一个程序员很难上手和使用。好像我只是让一切变得复杂。在这一点上,我考虑制作课程来处理它。只有属性的类似乎并不理想。
这是一个基本的例子:
dict = {
heading1 : [
(value1, id1), (value2, id2)
],
heading2 : [
(value3, id3), (value4, id4)
],
}
如何对上述数据结构进行编码,使其更易于理解和维护?
【问题讨论】:
-
你需要类——它们的属性可以是你想要的任何类型,包括嵌套的字典或列表。属性也可以是其他自定义类的实例。比您拥有的值是元组列表的字典要容易得多。
-
像这样的一般设计问题并不适合Stack Overflow。它更接近于 Software Engineering 的主题,但您可能需要就为什么一种设计优于另一种设计提出更具体的问题,而不是提出广泛的建议。
-
@run_the_race,让我向你介绍
namedtuple,你最好的新朋友。 -
我现在已经了解了命名元组,它们对代码的可读性很有帮助。但是,它们的缺点是搜索它们的列表。例如。命名元组的列表并尝试查找其列是特定值的元组。
标签: python dictionary