<p>下面是一种使用<code>for</code>循环的方法,如您所述,它处理第二组的情况:</p>
<pre><code># define list of strings for input
strings = ['splitter001','stringA','stringB','splitter_1234','stringC']
split_strings = [] # this is going to hold the final output
current_list = [] # this is a temporary list
# loop over strings in the input
for s in strings:
if 'splitter' in s:
# if current_list is not empty
if current_list:
split_strings.append(current_list) # append to output
current_list = [] # reset current_list
current_list.append(s)
# outside of the loop, append the leftover strings (if any)
if current_list:
split_strings.append(current_list)
</code></pre>
<p>这里的关键是在循环之外的末尾再执行一次附加,以捕获最后一个组。在</p>
<p>输出:</p>
^{pr2}$
<p><strong>编辑</strong>:添加代码说明。在</p>
<p>我们创建一个临时变量<code>current_list</code>,以保存将附加到最终输出<code>split_strings</code>的每个列表。在</p>
<p>循环输入中的字符串。对于每个字符串<code>s</code>,检查它是否包含<code>'splitter'</code>。如果有,并且<code>current_list</code>不是空的,这意味着我们已经找到了下一个分隔符。将<code>current_list</code>追加到输出并清除它,这样我们就可以开始收集下一组字符串的项。在</p>
<p>检查之后,将当前字符串追加到<code>current_list</code>。这是因为我们在找到分隔符后将其清除(设置为<code>[]</code>)。在</p>
<p>在列表的末尾,我们将剩余的内容附加到输出中,如果有的话。在</p>