How to quickly count number of 0(s) in a binary list?
本问题已经有最佳答案,请猛点这里访问。
对于类似于
使用
1 | your_list.count(0) |
还有帮助:
1 2 3 4 5 | >>> help(list.count) Help on method_descriptor: count(...) L.count(value) -> integer -- return number of occurrences of value |
1 2 3 4 | In [16]: l = [0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0] In [17]: l.count(0) Out[17]: 5 |
您可以使用数组(它只对大列表很重要)将速度提高100倍…
这应该比
1 | (my_array==0).sum() |
但是,如果您的数据已经被安排为numpy数组(或者您可以在创建时将其放入numpy数组),那么它只会有所帮助。否则转换
你的选择,无论什么让你晚上睡觉:
1 2 3 4 5 6 7 | l = [0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0] print l.count(0) # or maybe: print len(filter(lambda a: a == 0, l)) # or maybe: print len([0 for x in l if x==0]) |
1 2 | li = [0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0] print len(li) - sum(li) |