2014-01-13 48 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