[pyar] Ordenar lista de tuplas

Ariel Rossanigo arielrossanigo en gmail.com
Mie Mar 2 15:58:53 ART 2016


Una cosa medio fea que anda con strings:

In [1]: lista = [('aaa', 'mmm'),

 ('bbb', 'aaa'),
 ('ccc', 'dasd'),
 ('bbb', 'zzz'),
 ('bbb', 'aa')]

In [2]: sorted(lista, key=lambda x: (x[0], list(map(lambda y: y*-1,
 list(x[1].encode('utf8'))))))
Out[2]:
[('aaa', 'mmm'),
 ('bbb', 'zzz'),
 ('bbb', 'aa'),
 ('bbb', 'aaa'),
 ('ccc', 'dasd')]




El 2 de marzo de 2016, 15:27, Ignacio Rossi<rossi.ignacio en gmail.com>
escribió:

>
>
> El 2 de marzo de 2016, 15:20, Ezequiel Trapani <etrapani04 en gmail.com>
> escribió:
>
>> Ah yo no lo termine de probar, pero tiene que ser solo números?
>>
>
> Se refiere a que no podés invertir el orden de un campo que no son números
> poniéndole un menos adelante. Porque -"un_string" no tiene sentido
>
> Saludos
>
> Ignacio
>
>
>> 2016-03-02 15:16 GMT-03:00 El Mati Barriento <elmatibarriento en gmail.com>:
>>
>>> En base al ejemplo que pasaron, esta forma me funcionó.
>>>
>>> sorted(lista, key=lambda x: (-x[1], x[0]))
>>>
>>> No lo probé con más elementos. Lo que podría hacer un poco de ruido es -
>>> x[1] porque solo va a funcionar con números.
>>> Pero para el caso, me parece muy pythonica
>>>
>>> Mati Barriento
>>>
>>> On March 2, 2016 2:56:41 PM GMT-03:00, fisa <fisadev en gmail.com> wrote:
>>>>
>>>> Recuerden que él pedía ordenar con uno de los campos en forma creciente
>>>> y el otro decreciente. Lo aclaro porque ya van varias respuestas
>>>> proponiendo aplicar el mismo ordenamiento a ambos campos, que no es lo que
>>>> él necesita.
>>>>
>>>> Saludos!
>>>>
>>>> On Wed, Mar 2, 2016 at 2:47 PM Pablo A. Kler <
>>>> kler en cimec.santafe-conicet.gov.ar> wrote:
>>>>
>>>>> Esa idea es buena, si multiplicás los números por -1, las dos listas
>>>>> te van a quedar crecientes.
>>>>> Saludos.
>>>>>
>>>>> Pablo.
>>>>>
>>>>>
>>>>> --------------------------------------------------------------------------------------------------------------------------------------------------
>>>>> Dr. Bioeng. Pablo A. Kler
>>>>> Centro de Investigación de Métodos Computacionales (CIMEC)
>>>>> Universidad Nacional del Litoral (UNL)
>>>>> Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
>>>>>
>>>>> Predio CONICET-Santa Fe Dr. Alberto Cassano
>>>>> Colectora RN 168 Km 473 - Paraje El Pozo -
>>>>> Santa Fe (3000)  - Argentina
>>>>> Tel: +54-342-4511594 (ext 7064)
>>>>> Fax: +54-342-4511169
>>>>> http://www.cimec.org.ar
>>>>>
>>>>> El 2 de marzo de 2016, 12:14, Ezequiel Trapani <etrapani04 en gmail.com>
>>>>> escribió:
>>>>>
>>>>>> Claro, entiendo pero mi consulta venia porque las dos columnas se
>>>>>> ordenan distintas una es en orden creciente y la otra decreciente. Si yo
>>>>>> agrego lo de "reverse = True" me va a tomar las dos columnas decrecientes,
>>>>>> por eso consultaba si con lo del menos podía controlar la forma de ordenar
>>>>>> de cada columna individual.
>>>>>>
>>>>>> 2016-03-02 12:13 GMT-03:00 Nicolás Demarchi <listas en gilgamezh.me>:
>>>>>>
>>>>>>> -------- Original Message --------
>>>>>>>
>>>>>>> Subject: Re: [pyar] Ordenar lista de tuplas
>>>>>>> Local Time: March 2, 2016 12:10 pm
>>>>>>> UTC Time: March 2, 2016 3:10 PM
>>>>>>> From: etrapani04 en gmail.com
>>>>>>> To: pyar en python.org.ar
>>>>>>>
>>>>>>> Buenísimo entonces, y esta opción  "sorted(lista, key=lambda x:
>>>>>>> (-x[1], x[0]))" que tan buena es? imagino que poniendo el - adelante de
>>>>>>> x[1] estas indicando que se ordena decrecientemente no? En ese sentido para
>>>>>>> mas legible y natural de escribir.
>>>>>>>
>>>>>>>
>>>>>>> "sorted(lista, key=lambda x: (x[1], x[0]), reverse=True)"
>>>>>>>
>>>>>>> saludos!
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> pyar mailing list pyar en python.org.ar
>>>>>>> http://listas.python.org.ar/listinfo/pyar
>>>>>>>
>>>>>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>>>>>
>>>>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre
>>>>>>> de Argentina - http://www.usla.org.ar
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Ezequiel Trapani
>>>>>>
>>>>>> _______________________________________________
>>>>>> pyar mailing list pyar en python.org.ar
>>>>>> http://listas.python.org.ar/listinfo/pyar
>>>>>>
>>>>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>>>>
>>>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre
>>>>>> de Argentina - http://www.usla.org.ar
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> pyar mailing list pyar en python.org.ar
>>>>> http://listas.python.org.ar/listinfo/pyar
>>>>>
>>>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>>>
>>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>>>> Argentina - http://www.usla.org.ar
>>>>
>>>> --
>>>> --
>>>> fisa  -  Juan Pedro Fisanotti
>>>>
>>>> ------------------------------
>>>>
>>>> pyar mailing list pyar en python.org.ar
>>>> http://listas.python.org.ar/listinfo/pyar
>>>>
>>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>>
>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
>>>>
>>>>
>>> _______________________________________________
>>> pyar mailing list pyar en python.org.ar
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>
>>
>>
>>
>> --
>> Ezequiel Trapani
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20160302/539ec899/attachment.html>


Más información sobre la lista de distribución pyar