簡體   English   中英

python中的混亂字典輸出

[英]Messy dictionary output in 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模塊的OrderedDict http://docs.python.org/2/library/collections.html#collections.OrderedDict

如果您不需要修改數據,則也可以考慮namedtuple http://docs.python.org/2/library/collections.html#collections.namedtuple

OrderedDict使事物保持分配的順序。 我並不經常發現它有用,但是如果您需要它,請使用它。

另外,如果您並沒有真正使用“字典”訪問屬性,那么,如果您不需要修改任何一個元組成員,請考慮只在此處存儲一個元組列表,即2個元組。

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

使用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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM