問題は、部屋番号と詳細をキーとして、詳細を値として辞書に入れる必要がある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':なし...など)と表示されるようにコードを正しく記述する方法を知っている人はいますか?そしてうまくいけば、誰かが私のコードが私が意図したように機能しなかった理由を説明することができます。