[pyar] Eiliminando if .. else

Lucio lucionardelli en gmail.com
Jue Feb 22 11:33:56 -03 2018


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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180222/87f70da1/attachment.html>


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