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

时间:2016-03-31 13:48:54

标签: python list tuples find-occurrences

我有一个list tuples,每个元组都有两个元素:一个整数和一个内部列表。元组列表包含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 )的出现次数?

3 个答案:

答案 0 :(得分:1)

这是让你入门的东西。对于#1,您可以使用列表解析来获取元组的每个部分的长度:

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分: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)