2010-09-15 49 views
0

我有一個大辭典我的代碼中不斷引用,所以我把它在頂部初始化:預先聲明的字典大小限制?

import ... 

myDictionary = {'a':'avalue','b':'bvalue',...} 

code ... 

但是,當我試圖讓值,某些鍵都沒有找到。看起來好像Python由於大小限制而砍掉我的字典。我試圖搜索谷歌,但無法找到任何東西。

我最終將key:value映射轉儲到單獨的文件中,並編寫了一個函數,該函數通過讀取文件來構建字典。

很高興知道爲什麼會發生這種情況...更好地找到一種更清潔的方式來保存我的字典。

編輯:詞典有超過1700個鍵

+0

多少個鍵呢字典有? – aaronasterling 2010-09-15 23:11:02

+0

1,700+鍵...添加到OP – makoto 2010-09-15 23:13:20

+0

我會將該字典存儲在一個文件中。對於字典來說沒有問題,但對於一行代碼來說過多。 – recursive 2010-09-15 23:27:13

回答

2

Python沒有字典大小限制。我有超過100萬個密鑰的字典。你能發佈更多的代碼嗎?

+0

我寫了一個簡單的測試腳本,在這裏我預先聲明瞭一個大字典,並且只是打印出長度:len(myDictionary),並且報告的大小甚至與它應該達到的大小沒有接近。看起來,預先聲明的字典與一次構建一個密鑰的字典具有不同的最大長度(內存限制)... 我已經要求我的朋友嘗試並且他們看到相同的奇怪結果...不是gonan發佈1,700個密鑰字典,它容易使: – makoto 2010-09-15 23:35:18

+0

myDictionary = { '0': '0', '1': '1', '2': '2', ... 嘗試僅300 – makoto 2010-09-15 23:36:39

+1

@makoto :你使用的是什麼版本的Python?我剛剛創建了一個帶有1000000個元素字典的源文件,並且正確報告了長度。 – 2010-09-15 23:43:04

4

你可能想要查找的一件事是你的字典中的鍵不重複。例如,下面的代碼:

>>> d = {'1': 'hello', '2': 'world', '1': 'new'} 
>>> d 
{'1': 'new', '2': 'world'} 
>>> 

,因爲我使用的關鍵'1'兩次,只有最後一個出現,因此我留下了大小爲2的字典,而不是3