從預先分配的列表開始,並在每個索引處設置項目,而不是以空列表和附加項目開始,是否更快?我需要這個清單來保存10k-100k的物品。使用python反覆追加的速度
我問,因爲我想實現一個算法,需要O(n)時間在遞歸的每個級別,但我得到的結果表明O(n^2)時間。我想可能python需要不斷調整列表大小可能會導致這種放緩。
我發現了類似的問題,但沒有明確回答我的問題。一個答案表明,垃圾收集可能會非常緩慢,所以我試着打開和關閉gc,結果沒有改善。
問題已解決: 如果有人很好奇,經濟衰退是由於經常性地將工會集合在一起造成的。現在我使用一種不同的方法(涉及排序)來檢查是否同一個鍵被看到兩次。
當你試圖獲得更好的性能,我不會使用追加或在位置插入在所有推薦:嘗試使用列表理解,它可以一次構建所有列表,而不是從C跳到Python多次。 另一個可能的瓶頸可能是測試列表中項目的成員身份,在這種情況下,設置或字典速度更快,但是您爲每個存儲項目消耗的內存支付了一點。祝你好運。 –
感謝您的回覆。我將嘗試僅使用列表解析來初始化所有列表。 –
另外,正如你所建議的那樣,我正在使用字典和成員集。 –