Dears,计数方法需要帮助如果
LIST=[0,0.0,False,[],(),{},1,1.1,True]
并且如果使用.count
并且在0
或0.0
或False
上搜索
---LIST.count(0)
或LIST.count(0.0)
或LIST.count(False)
-
返回3而不是6,同时还有另外3个元素考虑为False
:[]
、()
、{}
如下bool
函数
如果我们使用bool([])
、bool(())
或bool({})
来知道其布尔值将返回False
我也试着检查
print([] == False) | print(() == False) | print({} == False)
将返回False
而不是True
计算错误元素的有趣迭代器方法:
false = 0
it = iter(LIST)
while not all(it):
false += 1
或者一种无聊的正常方式:
false = sum(1 for x in LIST if not x)
我不确定您的最终目标是什么,但使用.count
方法查找zero
(False(,您可以通过将原始元素转换为布尔来创建另一个列表
>>> lst = [0, 0.0, False, [], (), {}, 1, 1.1, True]
>>> l = [bool(el) for el in lst]
>>> l.count(0)
6
>>> l.count(False)
6
如果您想同时计算True和False的等价项,您可以依赖使用集合的标准库。计数器
>>> import collections as co
>>> c = co.Counter(map(bool, lst))
>>> c[False]
6
>>> c[True]
3