函数中多个值之间的 AND 运算符
Posted
技术标签:
【中文标题】函数中多个值之间的 AND 运算符【英文标题】:AND operator between multiple values in a function 【发布时间】:2022-01-11 02:24:25 【问题描述】:我有一个函数,它接收两个列表值并返回它们的 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,但对如何在其上使用 & 运算符感到非常困惑。
【问题讨论】:
所有数组的长度都一样吗? 是的。很抱歉错过了这个细节。 好的,谢谢。我回答了你的问题。 【参考方案1】:使用all
函数并迭代您的参数。
def and_op(*args):
return np.array([int(all([arg[i] for arg in args])) for i in range(len(args[0]))])
【讨论】:
只是有点疑惑。如果我必须对 OR 操作做同样的事情,那将如何改变? 那么你应该使用any
函数而不是all
。这很容易,不是吗?以上是关于函数中多个值之间的 AND 运算符的主要内容,如果未能解决你的问题,请参考以下文章