LIST.count() in Python



Dears,计数方法需要帮助如果

LIST=[0,0.0,False,[],(),{},1,1.1,True]

并且如果使用.count并且在00.0False上搜索

---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

最新更新