[英]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.