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