python - 列表中元素之间的按位运算

标签 python arrays list numpy bit-manipulation

我有一个按位元素列表,例如[1,1,1],我想在列表中的每个元素之间进行按位或运算。所以,例如

对于 [1,1,1] 做

1 | 1 | 1 = 1

或者对于 [1,17,1] 做

1 | 17 | 1 = 17

如何在不循环的情况下执行此操作? Numpy 的 bitwise_or 似乎只适用于 2 个数组。是否有按位 & 或 |它适用于每个元素,类似于 sum 或 np.mean?谢谢。

最佳答案

您可以使用 reduceoperator.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/

相关文章:

python - ipython CheckboxWidget 放置

ios - 在缓存 iOS Swift 中存储数据数组

c# - 从 C# 访问 C DLL 结构中的数组

python - 将 seaborn 情节图例移动到不同的位置

python - 实现函数的优化和非优化版本的最简洁方法?

python - 两段几乎相同的代码,但其中一段在 python 中产生 localunbounderror

javascript - 将 Questions 数组和 Answers 多维数组洗牌相同

c# - 在 C# 中通过 sql 填充具有指定列的所有表名的列表

c - 如果输入错误,则双重询问输入

python - 为重复列表中的元素添加标签