2012-04-28 77 views
1

我是python的新手。我需要一個數據結構來存儲一些對象的計數。例如,我想存儲訪問量最大的網頁。可以說。我有100個訪問量最大的網頁。我保留每個網頁的訪問次數。我可能需要更新列表。我一定會更新訪問次數。它不必訂購。我將查看給定網頁ID的關聯訪問計數。我打算使用字典。有沒有更快的方式在Python中做到這一點?python字典結構,速度問題

+6

'python字典結構有多快?'非常快。 – ChristopheD 2012-04-28 22:32:07

+0

標題可能有些錯誤。但是,我認爲我的擔憂是可以理解的。我想知道這是否是最快或者不是我的目的。你有什麼想法嗎? – 2012-04-28 22:34:13

+0

你也可以看看['collections.counter'](http://docs.python.org/library/collections.html#collections.Counter)是否符合你的需求。 – jamylak 2012-04-28 22:35:50

回答

3

該字典是適合此任務的快速數據結構(將網頁ID映射到訪問計數)。

對於快速O(1)訪問,使用hash tables來實現Python字典。它們非常快,幾乎任何避免它們的嘗試都會使代碼運行速度變慢,並使代碼看起來不愉快。

P.S.另外請看collections.Counter這是專門爲這種工作(計數命中)而設計的。它被實現爲一個初始默認值設置爲零的字典。

1

Python字典對象是整個Python語言中最優化的部分之一,其原因是字典在任何地方都可以使用。

例如,通常每個類的每個對象實例都使用一個字典來保持實例數據成員的內容,該類是一個包含方法的字典,模塊使用字典來保存全局變量,系統使用字典保留和查找模塊等。

使用字典保持計數器是Python中的一個好方法。