[pyar] Iterando sobre 2 listas

Luis Andraschnik luis.andraschnik en gmail.com
Jue Abr 5 08:23:18 -03 2018


Hola Franco

Tenés razón, en el dominio de mi aplicacion funciona, pero no es una
solución general  y no es equivalente a la propuesta por Francisco que es
estrictamente correcta

Saludos!
Luis




El mié., 4 de abr. de 2018 18:38, Franco Rodríguez <
franco.rodriguezf en gmail.com> escribió:

> 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
>
> _______________________________________________
> 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/20180405/44b7ac20/attachment-0001.html>


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