2013-10-19 53 views
0

我想從字典中輸出一些變量,但它不會按照我分配的順序輸出它。 我知道字典沒有順序,但我需要另一個目的字典,所以我不能使用列表。我想知道是否有辦法使輸出與我首先分配值的順序相同。Python中的凌亂字典輸出

輸入:

a = {'Name': "a", 'Date': 20021501, 'Time': 1800, 'Type': "JK", 'TG': 68, 'DC': 98} 

輸出:

{'TG': 68, 'DC': 98, 'Time': 1800, 'Date': 20021501, 'Type': 'JK', 'Name': 'a'} 

由於從collections模塊的任何幫助

+0

看看Python的OrderedDict http://docs.python.org/dev/whatsnew/2.7.html#pep-372-adding-an-ordered-dictionary-to-collections – That1Guy

回答

0

OrderedDict按照您指定的順序保存事物。我不經常覺得這很有用,但如果這是你需要使用它的話。

或者,如果您不是真的在使用「字典」訪問屬性,請考慮只在這裏存儲元組列表,2元組,如果您不需要修改元組的成員。

a = [('Name', 'Joe'), ('Age, '10')] 
for element in a: 
    print 'key {0}, value {1}'.format (element [0], element [1]) 
0

使用的OrderedDict: http://docs.python.org/2/library/collections.html#collections.OrderedDict

有序詞典就像是普通的字典,但他們 記住,項目插入的順序。在遍歷 有序字典時,這些項目將按照其鍵 第一次添加的順序返回。

OrderedDict的子類會記得爲了使參賽作品最後插入:

class LastUpdatedOrderedDict(OrderedDict): 
    'Store items in the order the keys were last added' 

    def __setitem__(self, key, value): 
     if key in self: 
      del self[key] 
     OrderedDict.__setitem__(self, key, value) 

該鏈接還表明,你可以把一個正常的字典,排序,並將其存儲在爲了作爲OrderedDict 。