[PIPython] sort()

tiziano a work tiziano
Ven 19 Nov 2004 15:16:51 CET


Spiegazione aggiuntiva:

il mio metodo utilizza il metodo di default di sort, che è appunto 
__cmp__(), metre la proposta di Fabrizio (più snella effettivamente) 
passa come primo parametro alla sort il metodo da utilizzare, che 
potrebbe essere scritto semplicemente come il mio __cmp__, ovvero:

def confronta_tupla(x,y):
  return x[2]>y[2]


ciao ciao
tiziano


Fabrizio Reale wrote:

>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
>
>  
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Python mailing list
>Python a lists.python.it
>http://lists.zope.it/cgi-bin/mailman/listinfo/python
>  
>




More information about the Python mailing list