Python是否附带了使用分隔符拆分列表的函数?

2024-04-20 00:08:50 发布

您现在位置:Python中文网/ 问答频道 /正文

有一个包含stringlist,我想在每个包含空string'')的点上拆分list,例如

['this', 'is', '', 'an', 'example']

应该变成

[['this', 'is'], ['an', 'example']]

我写了一个发电机,它可以:

def split(it, delimiter):
    it = iter(it)
    buffer = []
    while True:
        element = next(it)
        if element != delimiter:
            buffer.append(element)
        elif buffer:
            yield buffer
            buffer = []

由于这看起来很一般,我想知道我是否遗漏了itertools或其他地方的一些类似函数或相关模式。。。?你知道吗


Tags: anstringisexampledefbufferitelement
2条回答

您只需slice the list,所要做的就是找到分隔符的索引。你知道吗

>>> from itertools import groupby
>>> words = ['this', 'is', '', 'an', 'example']
>>> [list(g) for k, g in groupby(words, ''.__ne__) if k]
[['this', 'is'], ['an', 'example']]
>>> [list(g) for k, g in groupby(words, 'is'.__ne__) if k]
[['this'], ['', 'an', 'example']]

相关问题 更多 >