我正在构建一个类,其中包括带有整数键和列表值的字典.为这个字典添加值似乎是一个真正的瓶颈,我想知道是否有某种方法来加速我的代码.
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会极大地加速该过程!