Python 统计集合列表中的多次出现次数
有没有办法计算一组字符串列表的出现次数 例如,当我有这个列表时,它统计7个Python 统计集合列表中的多次出现次数,python,list,count,Python,List,Count,有没有办法计算一组字符串列表的出现次数 例如,当我有这个列表时,它统计7个'空格 list = [[' ', ' ', ' ', ' ', ' ', ' ', ' ']] print(list.count(' ')) 除了一组多个列表之外,还有什么方法可以做同样的事情吗?如下例所示: set = [[' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' '
'
空格
list = [[' ', ' ', ' ', ' ', ' ', ' ', ' ']]
print(list.count(' '))
除了一组多个列表之外,还有什么方法可以做同样的事情吗?如下例所示:
set = [[' ', ' ', ' ', ' ', ' ', ' ', ' '],
[' ', ' ', ' ', ' ', ' ', ' ', ' '],
[' ', ' ', ' ', ' ', ' ', ' ', ' ']]
print(set.count(' '))
当我这样做时,我得到的输出是0
,而不是实际发生的次数 解决方案
这项工作:
>>> data = [[' ', ' ', ' ', ' ', ' ', ' ', ' '],
[' ', ' ', ' ', ' ', ' ', ' ', ' '],
[' ', ' ', ' ', ' ', ' ', ' ', ' ']]
>>> sum(x.count(' ') for x in data)
21
您需要在每个子列表中计数。我使用a来完成这项工作,并将所有子列表的结果相加。
顺便说一句,不要使用set
作为变量名。它是内置的
演出
虽然在许多情况下性能并不重要,但性能可能会很有趣:
%timeit sum(x.count(' ') for x in data)
1000000 loops, best of 3: 1.28 µs per loop
vs
%timeit sum(1 for i in chain.from_iterable(data) if i==' ')
100000 loops, best of 3: 4.79 µs per loop