[PIPython] sort()

Fabrizio Reale realefab
Ven 19 Nov 2004 15:16:51 CET


Il mer, 2004-09-15 alle 10:32, ciccio a unical.it ha scritto:
>  Ciao a tutti, 
>  
> sapreste darmi qualche riferimento per la funzione sort()? Ho una lista di 
> tuple, ciacuna contenente 3 elementi numerici, che vorrei ordinare in funzione 
> del terzo valore della tupla. 
>  
> lista=[('1','2','0.01'),('1','3','2.11'),('1','4','1.55')] 
>  
> vorrei ottenere: 
>  
> [('1','2','0.01'),('1','4','1.55'),('1','3','2.11')] 

A sort devi passare la funzione che serve per ordinare la lista e cioè a
distinguere tra due oggetti quale è il "maggiore".
>>> [1,2].sort.__doc__
'L.sort(cmpfunc=None) -- stable sort *IN PLACE*; cmpfunc(x, y) -> -1, 0,
1'

quindi nel tuo caso definirei
def confronta_tupla(x,y):
	primo=x[2]
	secondo=y[2]
	if primo > secondo: return 1
	if primo < secondo: return -1
	return 0

che poi usi così:
lista.sort(confronta_tupla)

Verifica tutto, ho scritto senza controllare.
Fabry




More information about the Python mailing list