2014-01-13 90 views
0

好的時候,在dict()中放置單詞時,單詞很有趣,但在它們再次被加載後,dict()項全部混亂。Dictionary.py def load():混合變量

def load(): 
     dWord = {} 
    for word in open("Dictionary.DB","r").readlines(): 
     if len(word.strip())>0: 
      raw = word.split() 
      word, name, numdef, definition, wordtime = ' '.join(raw[0:-4]), raw[1], raw[2], ' '.join(raw[3:-1]), raw[-1] 
      dWord[word] = name, int(numdef), definition, int(wordtime) 
    Dictionary.dWord = dWord 

有沒有辦法讓dict()項目互相混淆?

+0

你的意思是說你想不重新排列順序並保持它的填充順序嗎? – Sassan

+0

是的。 xD – user3103923

回答

3

你應該使用OrderedDict,使用它,就像正常的字典:

>>> from collections import OrderedDict 
>>> d = OrderedDict() 
>>> d[2] = 3 
>>> d[1] = 4 
>>> d[5] = 2 
>>> print d 
OrderedDict([(2, 3), (1, 4), (5, 2)]) 
>>> for i in d: 
>>>  print i 
2 
1 
5 

正如你看到它保持插入順序。

+0

所以d和dWord一樣。所以這將是dWord = OrderedDict()正確嗎? – user3103923

+0

是@ user3103923 – Sassan

+0

好的。因爲上次我用了兩個''.join(raws,它導致所有的項目混淆在一起) – user3103923