Python:如何计算元组列表中出现的次数?

Python: how can I count the occurrences in a list of tuples?

我有一个 listtuples,每个元组有两个元素:一个整数和一个内部列表。元组列表有 len=900,每个内部列表可以有 len=2len=3len=4,具体取决于具体情况。

这是列表的摘录:

mylist=[(0, [1.0, 1.0]), (1, [1.0, 1.0, 1.0]), ..., (31, [1.0, 1.0, 1.0, 1.0]), ...].

这是一个特殊情况,其中内部列表的每个元素都是 1.0,但我想处理具有不同值的一般情况。

我的问题:

1) 如何计算内部列表中元素的总数?在可视化示例中,此数字为 2+3+4=9.

2) 如何计算内部列表中每个值(或者更好的是每个 bin)的出现次数?

这里有一些可以帮助您入门的东西。对于#1,您可以通过列表理解获得元组每个部分的长度:

lens = [len(y) for x, y in mylist]

这将生成元组中每个子列表长度的数组,因此 lens[0] 将等于 2,等等

您只需遍历列表,然后遍历内部列表,然后创建一个字典来分别计算每个值。 您还为每个内部列表增加一个变量来计算元素。

inner_list_count = 0
value_count = dict()
for key,innerlist in mylist:
    inner_list_count += len(innerlist)
    for value in innerlist:
        if value not in value_count:
            value_count(value) = 0
        value_count(value) += 1

元素个数:

sum(len(l) for _, l in mylist)

出现次数:

from collections import Counter
Counter(x for _, l in mylist for x in l)

合并的次数:

from collections import Counter
binsize = 100
Counter(x - x % binsize for _, l in mylist for x in l)