如何使用位运算符比较对象列表

4
假设我有一个对象列表(比如,一组由布尔元素组成的numpy矩阵),foo = [a, b, c],我想使用一些按位运算符对它们进行比较,得到类似于 a | b | c 这样的结果。
如果我可以把这个按位操作写成一个函数,比如 bitwiseor 函数,那么我就可以使用 bitwiseor(*foo) 来实现了。但是,我并没有找到能够以这种函数形式编写按位或的方法。
是否有一些方便的方式来处理这种问题?还是说我只能使用循环逐个比较所有元素呢?
2个回答

10

使用operator中的函数方法与functools.reduce结合:

>>> import operator, functools
>>> functools.reduce(operator.or_, [1, 2, 3])
3

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接