[PIPython] Ordinare elementi di una lista
Matteo Giacomazzi
matteo.giacomazzi
Ven 14 Gen 2005 16:04:41 CET
Ciao Arianna,
venerdì 14 gennaio 2005, hai scritto:
> Devo rodinare gli elementi di una lista chiamata occorrenze.
> Ora vorrei che li ordinasse, ma con occorrenze.sort() ovviamente
> cambiano anche gli indici mentre io vorrei che mi restituisse:
> 4: 8
> 1: 5
> 2: 3
> quindi mantenendo davanti l'indice al quale erano assegnati tali numeri.
> Come posso fare?
Allora, sia 'a' la nostra lista di occorrenze e sia Python 2.4 o
superiore il tuo ambiente, quanto segue fa al caso tuo:
>>> a=[1,7,2,0,6,3,0,4]
>>> res=list(reversed(sorted((x, i) for i,x in enumerate(a) if x!= 0)))
>>> print '\n'.join('%d: %d' % (x[1], x[0]) for x in res)
1: 7
4: 6
7: 4
5: 3
2: 2
0: 1
>>>
La riga interessante è quella in cui viene generato res che risulta
essere la lista in ordine decrescente delle coppie tali che il primo
elemento è un elemento di 'a' ed il secondo elemento è la posizione
dell'elemento.
...si fa prima a scriverlo in Python! ;)
Saluti,
Matteo
--
mailto:matteo.giacomazzi a email.it
Y!M matteo_giacomazzi
More information about the Python
mailing list