You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否存在内置函数可返回布尔向量中的真值数量?

统计布尔向量中真值数量的高效方法

当然有更高效的办法啦!在Python里,统计布尔列表里True的数量,用内置的sum()函数就是最快最简洁的方案,比手动写for循环靠谱多了。

为什么sum()这么好用?

因为在Python的设计里,True等价于整数1,False等价于0,直接对布尔列表求和,得到的结果正好就是True的个数。而且sum()是用C语言实现的内置函数,执行效率远高于纯Python编写的for循环——尤其是当你的布尔向量特别大的时候,这个性能差距会非常明显。

举个实际例子

就拿你给出的向量来说:

b = [True, True, False, False, True, False]
print(sum(b))  # 输出结果就是3,完全符合你的需求

处理大规模数组的额外方案

如果你是在处理大规模的布尔数组(比如用numpy做数据处理),还可以用numpy.count_nonzero(),它专门用来统计数组中非零元素的数量,对于布尔数组来说,True就是非零值,所以也能快速得到结果:

import numpy as np
arr = np.array([True, True, False, False, True, False])
print(np.count_nonzero(arr))  # 同样输出3

总之,普通Python列表用sum()就足够高效,numpy数组的话用count_nonzero()更合适,都比手动写for循环要快得多。

内容的提问来源于stack exchange,提问作者sinoky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:01:50