擅长:python、mysql、java
<pre><code>a = [12,11,5,7,2,21,32,13,6,42,1,8,9,0,32,38]
indices = [idx for idx,val in enumerate(a) if val < 10]
</code></pre>
<p>这将创建一个<code>list</code>个索引:</p>
^{pr2}$
<p>为了便于解析,我建议保持这种方式,但您也可以将其转换为以下范围:</p>
<pre><code>ranges = [[]]
for val in indices:
if not ranges[-1] or ranges[-1][-1] == val-1:
ranges[-1].append(val)
else:
ranges.append([val])
</code></pre>
<p>这将创建一个<code>list</code>范围:</p>
^{4}$
<p>现在去掉中间部分:</p>
<pre><code>ranges = [[item[0],item[-1]] if len(item) > 1 else item for item in ranges]
</code></pre>
<p>结果:</p>
<pre><code>[[2, 4], [8], [10, 13]]
</code></pre>