Python:如何计算元组列表中出现的次数?
Python: how can I count the occurrences in a list of tuples?
我有一个 list
的 tuples
,每个元组有两个元素:一个整数和一个内部列表。元组列表有 len=900
,每个内部列表可以有 len=2
、len=3
或 len=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)
我有一个 list
的 tuples
,每个元组有两个元素:一个整数和一个内部列表。元组列表有 len=900
,每个内部列表可以有 len=2
、len=3
或 len=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)