我有一个文本文件,其中有多个部分,这些部分用特定的字符串划分。在目前为止的代码中,此部分已被提取为单独行的列表。
原始文件如下所示:
>>
1. Title
Some data
Some data
Some data
>>
2. Title
Some data
Some data
Some data
>>
3. Title
Some data
Some data
Some data
如上所述,这在一个列表中表示了几个字符串,所以:
['>>', '1. Title', 'Some data, 'Some data', 'Some data', '>>', '2. Title', ... ]
将此列表子集化为由>>
划分的单独条目的最简单方法是什么?可以有任意数量的条目,它们的长度可以不同,因此使用简单的切片符号并不是我可以选择的选项 - 它必须依赖于列表中的分界。
我想最终:
条目1:
['>>', '1. Title', 'Some data', 'Some data', 'Some data']
第2条:
['>>', '2. Title', 'Some data', 'Some data', 'Some data']
条目3:
['>>', '3. Title', 'Some data', 'Some data', 'Some data']
(如果列表有所不同,我实际上并不关心收集>>
。)
答案 0 :(得分:2)
只需将子列表附加到保留列表:
full_list = ['>>', '1. Title', 'Some data', ...
final = []
sublist = [] # This list will initially absorb lines before the first >>
for line in full_list:
if line == '>>':
sublist = []
final.append(sublist)
else:
sublist.append(line)
print(final)
注意:如果输入的结尾为>>
,您最终会在列表末尾显示一个空列表。