Il problema è un elenco di numeri di stanze e dettagli del cliente che ho estratto direttamente da un file txt che deve essere inserito in un dizionario con il numero della stanza come chiavi e i dettagli come valori.Come si ordina un dizionario?
L'elenco degli ospiti è letteralmente un elenco, ogni articolo rappresenta il numero della camera, il nome dell'ospite, l'arrivo, le date di partenza. Le stanze senza nulla accanto a loro sono vuote.
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']]
Fondamentalmente, è necessario inserirlo in un dizionario. Ecco cosa ho provato:
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
che mi dà:
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}
Come si può vedere il dizionario è mettere insieme in nessun ordine particolare. Tuttavia, per questo particolare esercizio, il dizionario deve essere in ordine dal numero di stanza più basso a quello più alto. Credo che ho pensato che sarebbe solo scorrere attraverso ogni lista interna dall'inizio alla fine, testarlo e basta costruire il dizionario in questo ordine.
Qualcuno sa come scrivere correttamente il codice in modo che il dizionario risulti come '' 101 ': Nessuno,' 102 ', Nessuno,' 103 ': Nessuno ... ecc.? E spero che qualcuno possa spiegare perché il mio codice non ha funzionato come volevo.
Le voci del dizionario sono memorizzate come hash e sono, per natura, non ordinate. I tuoi compiti ti richiedono di usare un dizionario? Perché hai bisogno di loro ordinati? –
possibile duplicato di [Articoli che ordinano nel dizionario Python] (http://stackoverflow.com/questions/3127945/items-ordering-in-python-dictionary) – geoffspear
Scusate ragazzi, il mio titolo è un po 'fuorviante, non è vero? Mi interessava di più il motivo per cui il codice diventa confuso in quel modo particolare. Quello che ho raccolto da tutte le tue risposte è che 'è solo' lol sì, richiede un dizionario ma potrei essere in grado di farla franca con uno non ordinato se uso il codice di aix sotto – bang