一尘不染

根据定界符分割列表

python

我有一个包含各种字符串值的列表。我想一看就拆分列表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

阅读 269

收藏
2021-01-20

共1个答案

一尘不染

我会使用发电机:

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

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

2021-01-20