擅长:python、mysql、java
<p>你想找到所有的序列,计算它们的长度,得到平均值。这些步骤中的每一步都相对简单</p>
<pre><code>items = [1, 101, 1, 101, 101, 1, 101, 101, 101, 1]
</code></pre>
<p>查找序列:使用<code>groupby</code></p>
<pre><code>from itertools import groupby
groups = groupby(items, lambda x: x > 100) # (False, [1]), (True, [101]), ...
</code></pre>
<p>查找长度(小心,不能列出可数项):</p>
<pre><code>lens = [len(g) for k, g in groups if k] # [1, 2, 3]
</code></pre>
<p>查找平均值(假设至少有一个):</p>
<pre><code>avg = float(sum(lens)) / len(lens) # 2.0
</code></pre>