函数中多个值之间的 AND 运算符
AND operator between multiple values in a function
我有一个函数接受两个列表值和 returns 它们的 AND 运算符输出。现在我需要让函数接受多个值并获得输出。我现在已经为两个标志值列表完成了此操作:
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])
输出:
array([0,0,1,1,0])
我现在需要改变这个函数,使参数是动态给出的,参数的数量可以超过两个。
and_op([0,1,1,0], [1,1,0,1], [1,1,1,0], [0,1,0,1])
如何更改函数以便获得上述案例的输出?我想到了 *args,但对如何在其上使用 & 运算符感到非常困惑。
使用 all
函数并迭代您的参数。
def and_op(*args):
return np.array([int(all([arg[i] for arg in args])) for i in range(len(args[0]))])
我有一个函数接受两个列表值和 returns 它们的 AND 运算符输出。现在我需要让函数接受多个值并获得输出。我现在已经为两个标志值列表完成了此操作:
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])
输出:
array([0,0,1,1,0])
我现在需要改变这个函数,使参数是动态给出的,参数的数量可以超过两个。
and_op([0,1,1,0], [1,1,0,1], [1,1,1,0], [0,1,0,1])
如何更改函数以便获得上述案例的输出?我想到了 *args,但对如何在其上使用 & 运算符感到非常困惑。
使用 all
函数并迭代您的参数。
def and_op(*args):
return np.array([int(all([arg[i] for arg in args])) for i in range(len(args[0]))])