这是python中这种数据结构的最佳方法?

cur*_*ous 2 python data-structures

我在python中有以下情况:我正在解析本体,我想跟踪本体的一些属性并构建具有以下特征的数据结构:

- 只需一个密钥即可访问每个值

- 该值将是另一个具有以下3个内容的键值数据结构:

'x':[]一个简单的列表

'y':[{'name':value,'type':value}]包含特定dictioanry键值的列表

'z':[{'name':value,'type':value}]包含特定字典键值的列表

根据上面的最终数据结构,我是:

ontology={'': [{'y': {'type': '','name':''}}],'x':[],'z':[ {'type': '', 'name': ''}]}
Run Code Online (Sandbox Code Playgroud)

最后我想要这个dinctionary的多个条目.我不想使用列表,因为索引将是一个整数,我想通过一个键索引我的数据.

我将在3个不同的for循环中填充此数据结构.

在第一个循环中,我将仅使用键名称填写本体词典.我认为如下:

    ontology['a']={'a': [{'y': {'type': '','name':''}}],'x':[],'z':[ {'type': '', 'name': ''}]}
Run Code Online (Sandbox Code Playgroud)

但是这个东西是用'python'标准方式做的.有没有其他更方便的方法这样做,因为在我看来有些奇怪.

最后我会有这样的事情:

ontology['a']={'a':[{'y': {'type': '','name':''}}],'x':[],'z':[ {'type': '', 'name': ''}]}
ontology['b']={'b':[{'y': {'type': '','name':''}}],'x':[],'z':[ {'type': '', 'name': ''}]}
ontology['c']={'c':[{'y': {'type': '','name':''}}],'x':[],'z':[ {'type': '', 'name': ''}]}
ontology['d']={'d':[{'y': {'type': '','name':''}}],'x':[],'z':[ {'type': '', 'name': ''}]}
Run Code Online (Sandbox Code Playgroud)

在基于键的第二个循环中,我将填充x:[]值,这本身就是另一个字典

在第三个for循环中,我将填充y和z键.

这对于这个数据结构来说这是一个很好的方法吗?我还想过使用Classes来使我的代码更加"结构化",但我想我会使用更多的代码行

Ned*_*der 8

"代码行"可能不是优化的最佳指标.这看起来像是一个超出"词典和列表"解决方案的典型例子.我去过那里很多次了.使用一个类,它将让您编写可理解的可维护代码,使用命名方法来操作您的数据结构.

这将使您可以灵活地隐藏和更改底层存储,而无需更改语义或调用者的数据视图.