2012-01-09 41 views
-4

我想寫一個400,000項目詞典的python腳本。Python中有什麼大事?

這是愚蠢的嗎?

有多大太大?

(我的數據是在數據庫中的計劃是搜索字典每次運行與INFILE列表中的程序時就像一個查詢。)

回答

4

,以確保最好的辦法:寫3行腳本來測試它。

對於運行Unix的128 MB計算機來說,這可能太大了。對於擁有24 GB RAM的怪物來說,這可能並不明顯。

1

這取決於你想要做什麼。可能是唯一的方法,可能完全不適合考慮到手頭的問題。

更好的問題是向我們解釋你的問題以及你如何考慮接近它(爲什麼你需要那個字典?)。

1

Python字典實現爲hash map,因此訪問成本爲O(1)

只要你有足夠的內存,這不會是一個問題,它會非常快。

1

在64位機我跑到下面的腳本...

>>> d = {} 
>>> for i in xrange(400000): 
...  d[i] = i*2 

這引起了Python的過程中要使用約75MB的內存,制定出每在字典條目大約200字節。

如果你正在存儲較大的對象,那麼你的內存使用率會更高,但如果你只是使用整數,那麼400000並不多。

1

使用簡單object s到填充字典有40萬項的64位Linux系統:

>>> d = dict((object(), object()) for _ in range(400000)) 
>>> d.__sizeof__() 
25166072 

這意味着dict將耗資約25MB。在創建這個之前,我的Python實例擁有8MB駐留內存,之後是44MB。

當然在現代機器的可接受範圍內。