python中特定条目之间的子集列表元素

时间:2018-01-29 09:57:36

标签: python list subset

我有一个文本文件,其中有多个部分,这些部分用特定的字符串划分。在目前为止的代码中,此部分已被提取为单独行的列表。

原始文件如下所示:

>>

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']

(如果列表有所不同,我实际上并不关心收集>>。)

1 个答案:

答案 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)

注意:如果输入的结尾为>>,您最终会在列表末尾显示一个空列表。