Operador AND entre múltiples valores en una función
Tengo una función que toma dos valores de lista y devuelve la salida del operador AND de ellos. Ahora necesito hacer que la función tome múltiples valores y obtener la salida. Por ahora, lo he hecho para dos listas de valores de bandera:
def and_op(lst1, lst2):
return np.array([(lst1 & lst2) for lst1,lst2 in zip(lst1, lst2)])
and_op([0,0,1,1,0], [1,0,1,1,1])
SALIDA:
array([0,0,1,1,0])
Ahora necesito cambiar esta función para que los argumentos se den de forma dinámica y el número de argumentos pueda ser mayor a dos.
and_op([0,1,1,0], [1,1,0,1], [1,1,1,0], [0,1,0,1])
¿Cómo puedo cambiar la función para obtener la salida para el caso anterior? Pensé en utilizar *args, pero me confundí mucho sobre cómo usar el operador & en él.
davy.ai
Para modificar la función
and_op
para que acepte múltiples listas, podemos utilizar la sintaxis*args
para aceptar cualquier número de argumentos. Aquí tienes un fragmento de código actualizado:En la función actualizada, asumimos primero que el primer argumento es una lista y lo asignamos a
result
. Luego, para todos los argumentos posteriores en*args
, realizamos la operación&
entreresult
y la lista actual, almacenando el resultado nuevamente enresult
. Finalmente, devolvemosresult
.Por ejemplo, si llamamos a
and_op([0,1,1,0], [1,1,0,1], [1,1,1,0], [0,1,0,1])
, el resultado sería[0,1,0,0]
, que es la operación AND elemento por elemento de las cuatro listas.Ten en cuenta que en la función actualizada, no necesitamos utilizar
np.array
, ya que la operación&
se puede realizar directamente en listas en Python.