Python 在每次出现以特定子字符串开头的元素时,将列表拆分为子列表

Python 在每次出现以特定子字符串开头的元素时,将列表拆分为子列表,python,python-2.7,list,formatting,nested-lists,Python,Python 2.7,List,Formatting,Nested Lists,我有一个包含一堆字符串的大列表。我需要将原始列表中的元素排序为嵌套列表,由它们在列表中的位置决定。换句话说,我需要将原始列表拆分为子列表,其中每个子列表包含以“ABC”开头的元素之间的所有元素,然后将它们作为嵌套列表连接在一起 原来的清单是: all_results = ['ABCAccount', 'def = 0', 'gg = 0', 'kec = 0', 'tend = 1234567890', 'ert = abc', 'sed = target', 'id = sadfefsd3g3

我有一个包含一堆字符串的大列表。我需要将原始列表中的元素排序为嵌套列表,由它们在列表中的位置决定。换句话说,我需要将原始列表拆分为子列表,其中每个子列表包含以“ABC”开头的元素之间的所有元素,然后将它们作为嵌套列表连接在一起

原来的清单是:

all_results = ['ABCAccount', 'def = 0', 'gg = 0', 'kec = 0', 'tend = 1234567890', 'ert = abc', 'sed = target', 'id = sadfefsd3g3g24b24b', 'ABCAccount', 'def = 0', 'gg = 0', 'kec = 0', 'tend = NA', 'ert = abc', 'sed = source', 'id = sadfefsd3g3g24b24b', 'ABCAdditional', 'addkey = weds', 'addvalue = false', 'ert = abc', 'sed = target', 'id = sadfefsd3g3g24b24b', 'time_zone = EDT’]
我需要返回:

split_results = [['ABCAccount','def = 0', 'gg = 0', 'kec = 0', 'tend = 1234567890', 'ert = abc', 'sed = target', 'id = sadfefsd3g3g24b24b'],['ABCAccount', 'def = 0', 'gg = 0', 'kec = 0', 'tend = NA', 'ert = abc', 'sed = source', 'id = sadfefsd3g3g24b24b'],['ABCAdditional', 'addkey = weds', 'addvalue = false', 'ert = abc', 'sed = target', 'id = sadfefsd3g3g24b24b', 'time_zone = EDT’]]
我尝试了以下方法:

split_results = [l.split(',') for l in ','.join(all_results).split('ABC')]

您可以直接从原始列表工作:

def make_split( lst ):
    if len(lst) == 0:
        return []
    r0 = []
    r1 = []
    for s in lst:
        if s.startswith("ABC"):
            if r1:
                r0.append(r1)
                r1 = []
        r1.append(s)
    return r0 + [r1]

您是通过什么过程生成示例输出的?假设您指的是一个嵌套列表的输出,这很好,看起来您想要一个dict of dict