[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