[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