como elimino las repeticiones
if a < 2 or b < 2 or c < 2 or d < 2: pass #logic
Quiero eliminar las repeticiones. Algo como esto:
if (a,b,c,d) < 2: pass #logic
No importaría numpy
solo por esto como sugieren otras respuestas. Probablemente sea una exageración.
Yo haría algo como:
condition = lambda x: x < 2 if any(condition(x) for x in (a, b, c, d)): # whatever you want
O más compacto (pero menos reutilizable):
if any(x < 2 for x in (a, b, c, d)): # whatever you want
Otra forma ligeramente diferente es verificar si la variable más pequeña es menor que el valor objetivo. En otras palabras, si la variable más pequeña no es menor que el objetivo, entonces seguramente ninguna de ellas lo es:
if min(a, b, c, d) < 2: # do something
Sin embargo, esto necesita encontrar el valor mínimo detrás de escena y pierde la ventaja de cortocircuito de usar any
con una expresión de generador.
Cuando se usa numpy, esto se puede hacer con .all() y .any():
import numpy as np array = np.asarray([1,2,3]) if (array < 2).any(): print('True') else: print('False') #output: True if (array < 2).all(): print('True') else: print('False') #output: False