擅长:python、mysql、java
<p>我的解决方案很可能不是最好的,但我们做到了:</p>
<p>样本数据:</p>
<pre><code>data = """> header1
line1
line2
> header2
line4
line5
""".split("\n")
</code></pre>
<p>简单for循环解决方案OP提到:</p>
<pre><code>def parse(d):
result = []
chunk = []
for line in d:
if not line:
continue
elif line.startswith(">"):
if not chunk:
continue
result.append(chunk)
chunk = []
continue
chunk.append(line)
if chunk:
result.append(chunk)
return result
</code></pre>
<p>并通过索引头+使用索引(2行)切片阵列:</p>
<pre><code>def _parse(d):
index = [i for i in range(0, len(d)) if d[i].startswith(">")] + [len(d)-1]
return [d[index[i]+1:index[i+1]] for i in range(0, len(index)-1)]
</code></pre>
<p>两个<code>[['line1', 'line2'], ['line4', 'line5']]</code>的结果</p>