使用Python中的类列表和dicts实现数据树

时间:2012-06-26 03:26:15

标签: python list dictionary

我正在写两个anidated类,一个是dict,另一个是列表吗? 有问题的第二个被告知, 这个词典就像下一个一样,

class Field( dict ):        
    def __keys__(self): 
        self.k = self.keys()
        return list(self.k)

    def __setattr__( self, attr, value):
        self[attr] = value

我想而不是添加下一个,

class Store(list):

相反,我想使用相同的高性能dict()和一些索引对象 和列表子参数

实现数据树的最正确方法是什么?任何想法?

1 个答案:

答案 0 :(得分:2)

我要回答一下。我你想要快速访问一些对象集合,同时能够保持它们的顺序。你可能能够摆脱像ordereddict这样简单的事情。如果没有,这样的事情可能会接近。这取决于您的数据。

class Container(object):
  def __init__(self):
    self.data = []
    self.byid = {}

  def setData(self, listofdicts):
    for item in listofdicts:
      id = item['id'] # Something here that's meaningful.
      self.data.append(item)
      self.byid[id] = item

  def getByPos(self, idx):
    return self.data[idx]

  def getById(self, itemid):
    return self.byid[itemid]