根据定界符分割列表

发布于 2021-01-29 14:10:29

我有一个包含各种字符串值的列表。我想一看就拆分列表WORD。结果将是一个列表列表(这将是原始列表的子列表),其中仅包含WORDI的一个实例,我可以使用循环执行此操作,但是有没有
更Python的 方法可以实现此目的?

例子= ['A', 'WORD', 'B' , 'C' , 'WORD' , 'D']

结果= [['A'], ['WORD','B','C'],['WORD','D']]

这是我尝试过的方法,但实际上并没有达到我想要的效果,因为它将放入WORD应包含的其他列表中:

def split_excel_cells(delimiter, cell_data):

    result = []

    temp = []

    for cell in cell_data:
        if cell == delimiter:
            temp.append(cell)
            result.append(temp)
            temp = []
        else:
            temp.append(cell)

    return result
关注者
0
被浏览
111
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我会使用发电机:

    def group(seq, sep):
        g = []
        for el in seq:
            if el == sep:
                yield g
                g = []
            g.append(el)
        yield g
    
    ex = ['A', 'WORD', 'B' , 'C' , 'WORD' , 'D']
    result = list(group(ex, 'WORD'))
    print(result)
    

    此打印

    [['A'], ['WORD', 'B', 'C'], ['WORD', 'D']]
    

    该代码接受任何可迭代的代码,并生成一个可迭代的代码(如果您不需要, 可以 将其平化为列表)。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看