Python 统计集合列表中的多次出现次数

Python 统计集合列表中的多次出现次数,python,list,count,Python,List,Count,有没有办法计算一组字符串列表的出现次数 例如,当我有这个列表时,它统计7个'空格 list = [[' ', ' ', ' ', ' ', ' ', ' ', ' ']] print(list.count(' ')) 除了一组多个列表之外,还有什么方法可以做同样的事情吗?如下例所示: set = [[' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' '

有没有办法计算一组字符串列表的出现次数

例如,当我有这个列表时,它统计7个
'
空格

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