[pyar] Eiliminando if .. else

Luis Andraschnik luis.andraschnik en gmail.com
Jue Feb 22 12:01:41 -03 2018


Hola Lucio
Esta es más complicada, lo tengo que tomar con dos vasos de agua :)
Saludos!
Luis


El 22 de febrero de 2018, 11:33, Lucio <lucionardelli en gmail.com> escribió:

> Bunas,
>
> Muy buena la de *bisect*! No la tenía, te queda mucho más lindo!
>
> Yo lo resolví utilizando *groupby*. De todas maneras lo comparto porque
> me parece interesante para responder la pregunta original de como evitar
> los *else if*.
> Lo que hice es sencillo, los límites están ordenados por lo que siempre
> podés ir "buscando" el "*menor de los mayores"* :
>
> import numpy as npfrom itertools import groupby
>> #map_vector acetileno/etileno
>> ACETILENO_ETILENO_MV = {0.1: 0,
>>         1.0: 1,
>>         3.0: 1,
>>         np.inf: 4}
>> def classify(value, map_vector):
>>     for limit in sorted(map_vector.keys()):
>>         if value < limit:
>>             return map_vector[limit]
>>     else:
>>         return map_vector[np.inf]
>> def gas_a_div_gas_b(a, b):
>>     temp =  np.inf if b == 0 else a/b
>>     return classify(temp, ACETILENO_ETILENO_MV)
>>
>>
> Saludos!
>
> El 22 de febrero de 2018, 11:14, Facundo Batista <facundobatista en gmail.com
> > escribió:
>
>> El 22 de febrero de 2018, 10:59, Luis Andraschnik
>> <luis.andraschnik en gmail.com> escribió:
>>
>> >     if temp < 0.1:
>> >         result = r1
>> >     elif 0.1 <= temp < 1.0:
>> >             result = r2
>> >     elif 1.0 <= temp <= 3.0:
>> >         result = r3
>> >     else:
>> >         result = r4
>> >     return result
>>
>> Mirá el primer ejemplo acá:
>> https://docs.python.org/3/library/bisect.html#other-examples
>>
>> Si no te sale, lo vemos.
>>
>> Saludos,
>>
>> --
>> .    Facundo
>>
>> Blog: http://www.taniquetil.com.ar/plog/
>> PyAr: http://www.python.org/ar/
>> Twitter: @facundobatista
>> _______________________________________________
>> 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/20180222/0a870a57/attachment.html>


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