我想寫一個400,000項目詞典的python腳本。Python中有什麼大事?
這是愚蠢的嗎?
有多大太大?
(我的數據是在數據庫中的計劃是搜索字典每次運行與INFILE列表中的程序時就像一個查詢。)
我想寫一個400,000項目詞典的python腳本。Python中有什麼大事?
這是愚蠢的嗎?
有多大太大?
(我的數據是在數據庫中的計劃是搜索字典每次運行與INFILE列表中的程序時就像一個查詢。)
,以確保最好的辦法:寫3行腳本來測試它。
對於運行Unix的128 MB計算機來說,這可能太大了。對於擁有24 GB RAM的怪物來說,這可能並不明顯。
這取決於你想要做什麼。可能是唯一的方法,可能完全不適合考慮到手頭的問題。
更好的問題是向我們解釋你的問題以及你如何考慮接近它(爲什麼你需要那個字典?)。
Python字典實現爲hash map,因此訪問成本爲O(1)。
只要你有足夠的內存,這不會是一個問題,它會非常快。
在64位機我跑到下面的腳本...
>>> d = {}
>>> for i in xrange(400000):
... d[i] = i*2
這引起了Python的過程中要使用約75MB的內存,制定出每在字典條目大約200字節。
如果你正在存儲較大的對象,那麼你的內存使用率會更高,但如果你只是使用整數,那麼400000並不多。
使用簡單object
s到填充字典有40萬項的64位Linux系統:
>>> d = dict((object(), object()) for _ in range(400000))
>>> d.__sizeof__()
25166072
這意味着dict
將耗資約25MB。在創建這個之前,我的Python實例擁有8MB駐留內存,之後是44MB。
當然在現代機器的可接受範圍內。