[pyar] Iterando sobre 2 listas

Franco Rodríguez franco.rodriguezf en gmail.com
Mie Abr 4 18:38:33 -03 2018


Hola Luis.

Cuidado con los valores de verdad en el último ejemplo que pusiste, dado
que no sólo None evalúa a False sino también 0: all([0, x]) es False para
todo x.

Saludos.

El mié., 4 de abr. de 2018 5:55 PM, Luis Andraschnik <
luis.andraschnik en gmail.com> escribió:

> Mirá vos esa no la sabía!
>
> Le agregué un poco de sal:
>
> foo, bar = zip(*[(a, b) for (a, b) in zip(foo, bar) if *all([a,b])*])
>
> El 4 de abril de 2018, 17:33, Francisco Couzo <franciscouzo en gmail.com>
> escribió:
>
>> no hace falta convertir el zip object a una lista, podés destructurarlo
>> directamente ya que es un iterador
>>
>> foo, bar = zip(*[(a, b) for a, b in zip(foo, bar) if a is not None and b
>> is not None])
>>
>> 2018-04-04 17:30 GMT-03:00 Luis Andraschnik <luis.andraschnik en gmail.com>:
>>
>>> Hola Francisco
>>>
>>> me parece que después hay que agregarle list y *
>>>
>>> foo, bar = *list(zip(*[(a, b) for a, b in zip(foo, bar) if a is not None
>>> and b is not None]))
>>>
>>> Ingenioso pero me parece muy difícil de leer (al menos para mí!)
>>> Saludos!
>>> Luis
>>>
>>>
>>> El 4 de abril de 2018, 17:13, Francisco Couzo <franciscouzo en gmail.com>
>>> escribió:
>>>
>>>> Podés usar algo como esto:
>>>>
>>>> zip(*[(a, b) for a, b in zip(foo, bar) if a is not None and b is not
>>>> None])
>>>>
>>>> 2018-04-04 17:06 GMT-03:00 Luis Andraschnik <luis.andraschnik en gmail.com
>>>> >:
>>>>
>>>>> Si tengo 2 listas de igual longitud y quiero recortar eliminando los
>>>>> None y manteniendo la paridad de longitud
>>>>>
>>>>> tengo:
>>>>> foo=[1,2,3,4,5,6]
>>>>> bar=[100,200,300, None,None]
>>>>>
>>>>> y quiero esto:
>>>>>
>>>>> foo=[1,2,3]
>>>>> bar=[100,200,300]
>>>>>
>>>>> Se les ocurre alguna solución más pythónica, por ejemplo usando list
>>>>> comprehensions?
>>>>>
>>>>> def emparejar(foo,bar):
>>>>>     foo1=[]
>>>>>     bar1=[]
>>>>>     for i, j in zip(foo,bar):
>>>>>         if j is not None:
>>>>>             foo1.append(i)
>>>>>             bar1.append(j)
>>>>>
>>>>>     return foo1, bar1
>>>>>
>>>>> Saluti
>>>>> Luis
>>>>>
>>>>> _______________________________________________
>>>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>>>>> Sitio web: http://www.python.org.ar/
>>>>>
>>>>> Para administrar la lista (o desuscribirse) entrar a
>>>>> http://listas.python.org.ar/listinfo/pyar
>>>>>
>>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>>>> Argentina - http://www.usla.org.ar
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>>>> Sitio web: http://www.python.org.ar/
>>>>
>>>> Para administrar la lista (o desuscribirse) entrar a
>>>> http://listas.python.org.ar/listinfo/pyar
>>>>
>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>>> Argentina - http://www.usla.org.ar
>>>>
>>>
>>>
>>> _______________________________________________
>>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>>> Sitio web: http://www.python.org.ar/
>>>
>>> Para administrar la lista (o desuscribirse) entrar a
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>
>>
>>
>> _______________________________________________
>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> Sitio web: http://www.python.org.ar/
>>
>> Para administrar la lista (o desuscribirse) entrar a
>> http://listas.python.org.ar/listinfo/pyar
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> 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/20180404/cebe6d94/attachment.html>


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