擅长:python、mysql、java
<p>将<code>itertools.groupby</code>与自定义键函数一起使用,该函数在每次看到新头时都会更改。在这个函数中,我们增加<code>ctr</code></p>
<pre><code>from itertools import groupby
lis = ['>a', 'b', 'c', '>d', 'e', '>f', '>g']
def group_by_header(lis: list):
def header_counter(x: str):
if x.startswith('>'):
header_counter.ctr += 1
return header_counter.ctr
header_counter.ctr = 0
return groupby(lis, key=header_counter)
print([list(l) for k, l in group_by_header(lis)])
# [['>a', 'b', 'c'], ['>d', 'e'], ['>f'], ['>g']]
</code></pre>