[pyar] Eiliminando if .. else
Luis Andraschnik
luis.andraschnik en gmail.com
Jue Feb 22 10:59:26 -03 2018
Hola grupo!
Estoy implementando en Python la norma IEC599 disolved Gas Analysis (DGA)
of mineral oil used in transformers. Hay que mapear el cociente entre 2
concentraciones de gases según el resultado, o sea es una función f:R --> N
Este es el ejemplo para aceitleno y etileno, que se extiende a otras 2
relaciones de gases (metano/hidrógeno y etileno/etano), dónde sólo cambia
el "map_vector".
¿ Hay una forma más elegante o pythónica de expresar esta función sin
tantos elif ?, especialmente porque tengo en cuenta que debe ser una
expresión muy común en muchos ámbitos, y la voy a utitilizar implementando
otras normas que emplean un procedimiento de mapeo similar.
import numpy as np
#map_vector acetileno/etileno
r1, r2, r3, r4 = 0, 1, 1, 2
def gas_a_div_gas_b(a, b):
temp = np.inf if b == 0 else a/b
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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180222/2622955b/attachment.html>
Más información sobre la lista de distribución pyar