函数中多个值之间的AND运算符



我有一个函数,它接受两个列表值,并返回它们的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]))])

最新更新