問題是房間號碼和客人詳細信息的列表我直接從txt文件中翻譯,需要將其放入字典中,房間號碼作爲鍵和細節作爲值。如何對字典進行排序?
客人名單實際上是一個列表,每個項目代表房間號碼,客人姓名,到達,出發日期。旁邊沒有任何東西的房間都是空的。
nlist = [['101'], ['102'], ['103'],
['201', ' John Cleese', ' 5/5/12', ' 5/7/12'], ['202'],
['203', ' Eric Idle', ' 7/5/12', ' 8/7/12'], ['301'], ['302'], ['303']]
基本上,要把它變成字典。下面是我的嘗試:
guests = {}
for i in nlist:
if len(i) == 1:
key = i[0]
guests[key] = None
else:
key = i[0]
val = i[1],i[2],i[3]
guests[key] = val
這給了我:
guests = {'201': (' John Cleese', ' 5/5/12', ' 5/7/12'),
'203': (' Eric Idle', ' 7/5/12', ' 8/7/12'), '202': None, '301': None,
'302': None, '303': None, '102': None, '103': None, '101': None}
正如你所看到的字典放在一起沒有特定的順序。然而,對於這個特定的練習,字典需要按從低到高的順序排列。我想我認爲它只是從頭到尾循環遍歷每個內部列表,測試它,然後按照該順序構建字典。
是否有人知道如何正確編寫代碼,使字典出現{101':無,'102',無,'103':無......等等)?希望有人能解釋爲什麼我的代碼不能按我的意圖工作。
詞典條目存儲爲散列,本質上是無序的。你的作業是否需要你使用字典?你爲什麼需要他們訂購? –
[Python項目中排序的項目]的可能的重複(http://stackoverflow.com/questions/3127945/items-ordering-in-python-dictionary) – geoffspear
對不起,我的標題有點誤導,不是嗎?我更加感興趣的是爲什麼字典以這種特殊方式混亂。我從所有答案中得到的結論是'它只是'大聲笑是的,它確實需要一本字典,但是如果我使用aix的代碼低於 – bang