我正在构建一个类,其中包含一个带有整数键和列表值的字典。不过,向这个字典添加值似乎是一个真正的瓶颈,我想知道是否有某种方法可以加快我的代码速度。
class myClass():
def __init__(self):
self.d = defaultdict(list)
def addValue(self, index, value):
self.d[index].append(value)
这真的是这样做的最佳方式吗?我并不真正关心值的顺序,所以也许有一个更合适的数据结构可以更快地追加。再说一次,“追加”似乎不是主要问题,因为如果我只是追加到一个空列表,代码会快很多。我猜是加载以前存储的列表占用了大部分时间?
我发现问题不在字典中,而是在附加列表中(尽管我在原始帖子中另有声明,对此我深表歉意)。这个问题是由于 Python 的垃圾收集器中的一个错误造成的,这在另一个问题上得到了很好的解释。在添加所有值之前禁用 gc 然后重新启用它,极大地加快了进程!