Python:使用列表值添加到字典的最佳方式

nie*_*nen 5 python dictionary

我正在构建一个类,其中包括带有整数键和列表值的字典.为这个字典添加值似乎是一个真正的瓶颈,我想知道是否有某种方法来加速我的代码.

class myClass():

  def __init__(self):
    self.d = defaultdict(list)

  def addValue(self, index, value):
    self.d[index].append(value)
Run Code Online (Sandbox Code Playgroud)

这真的是这样做的最佳方式吗?我并不真正关心值的顺序,所以也许有一个更合适的数据结构,有更快的附加.然后,'append'似乎不是主要问题,因为如果我只是附加到一个空列表,代码会快得多.我想这是以前存储的列表的加载占用了大部分时间?


我发现问题不在dict中,但在列表中附加(虽然我在原帖中另有说明,我为此道歉).这个问题是由于Python的垃圾收集器中的一个错误,这个问题另一个问题上有很好的解释.在添加所有值然后重新启用它之前禁用gc会极大地加速该过程!

nie*_*nen 0

作为结论,我可以说我在原始问题中的代码比所有其他建议更快或一样快。