【发布时间】:2019-09-05 16:24:05
【问题描述】:
我有 3 个列表如下:
L1 = ['H', 'H', 'T', 'T', 'T', 'H', 'H', 'H', 'H', 'T']
L2 = ['H', 'H', 'T', 'T', 'T', 'H', 'H', 'H', 'H', 'T' , 'T', 'H, 'T', 'T', 'T', 'H', 'H', 'H', 'T']
L3 = ['H', 'T', 'H', 'H']
我想计算每个列表中“H”的连续出现次数,并生成下表显示这些“H”序列的频率:
Length | L1 | L2 | L3
----------------------
1 0 1 1
2 1 1 1
3 0 1 0
4 1 1 0
5 0 0 0
我知道执行以下操作可以让我获得列表中序列的频率:
from itertools import groupby
[len(list(g[1])) for g in groupby(L1) if g[0]=='H']
[2, 4]
但我需要一种优雅的方式来进一步处理剩余列表,并确保为未观察到的长度放置“0”。
【问题讨论】:
标签: python list count sequence