[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