我有一个按位元素列表,例如[1,1,1],我想在列表中的每个元素之间进行按位或运算。所以,例如
对于 [1,1,1] 做
1 | 1 | 1 = 1
或者对于 [1,17,1] 做
1 | 17 | 1 = 17
如何在不循环的情况下执行此操作? Numpy 的 bitwise_or 似乎只适用于 2 个数组。是否有按位 & 或 |它适用于每个元素,类似于 sum 或 np.mean?谢谢。
最佳答案
您可以使用 reduce
与 operator.ior
:
>>> from operator import ior
>>> lst = [1, 17, 1]
>>> reduce(ior, lst)
17
正如@DSM 在评论中所建议的那样,numpy 等效项将是:
>>> import numpy as np
>>> arr = np.array(lst)
>>> np.bitwise_or.reduce(arr)
17
关于python - 列表中元素之间的按位运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25796158/