[pyar] Ordenamiento diccionarios

Natalia Bidart nataliabidart en gmail.com
Mie Abr 13 14:36:38 ART 2011


2011/4/13 Facundo Batista <facundobatista en gmail.com>:
> 2011/4/13 Juan BC <jbc.develop en gmail.com>:
>
>>
>> print sorted(diccionario.iteritems(), cmp=lambda i,j: cmp(i[1], j[1]))
>> _______________________________________________
>
> Pero esto hace exactamente lo mismo que lo que usó Natalia:
>
>  sorted(diccionario.iteritems(), key=operator.itemgetter(1))
>
> Por otro lado, el problema de usar "cmp" es que Python llama a esa
> función cada vez que quiere comparar dos items adentro... si la lista
> es larga, es carísimo. Por eso es mejor usar key=, como en en el
> ejemplo que pasé yo (porque key es llamado sólo una vez por cada
> elemento).

Además de que cmp no existe más en python 3:

>From http://docs.python.org/release/3.0.1/whatsnew/3.0.html#ordering-comparisons:

builtin.sorted() and list.sort() no longer accept the cmp argument
providing a comparison function. Use the key argument instead. N.B.
the key and reverse arguments are now “keyword-only”.



More information about the pyar mailing list