作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有 3 个列表:
a = [True, False, True]
b = [False, False, True]
c = [True, True, False]
当我打字时
a or b or c
我想取回一个列表
[True, True, True]
但是我回来了
[True, False, True]
有什么想法吗?我如何组合这些面具?
最佳答案
您的 或
运算符将列表作为整个对象而不是它们的元素进行比较。由于 a
不是空列表,它的计算结果为真,并成为 或
的结果。 b
和 c
甚至没有计算。
要按位置生成三个列表的逻辑或,您必须遍历它们的内容并对每个位置的值进行或运算。要将一堆可迭代对象转换为它们的分组元素列表,请使用 zip()
。要检查可迭代对象中的任何元素是否为真(其全部内容的或),请使用 any()
。使用列表理解同时执行这两个操作:
mask = [any(tup) for tup in zip(a, b, c)]
关于python - 在 Python 中组合 3 个 bool 掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20027131/
我是一名优秀的程序员,十分优秀!