Как сортировать словарь?

Проблема заключается в том, что список номеров комнат и информацию о гостях я вырвал прямо из 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': None, '102', None, '103': None... и т.д.)? И, надеюсь, кто-нибудь сможет объяснить, почему мой код тоже не работает так, как я хотел.

5
задан Bill the Lizard 20 September 2012 в 20:51
поделиться