函数中多个值之间的 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 运算符的主要内容,如果未能解决你的问题,请参考以下文章

C#,多个 == 运算符重载,没有模棱两可的空值检查

三元条件运算符中的多个条件?

mysql常用运算符和常用函数

具有多个条件的JS三元函数?

运算符的差异

在mysql中使用运算符之间的字符串值