python - 根据分隔符拆分列表

标签 python list split

我有一个包含各种字符串值的列表。每当我看到 WORD 时,我都想拆分列表。结果将是一个列表列表(将是原始列表的子列表),其中包含 WORD 的一个实例我可以使用循环来执行此操作,但是是否有 more pythonic 如何做到这一点?

示例 = ['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

最佳答案

import itertools

lst = ['A', 'WORD', 'B' , 'C' , 'WORD' , 'D']
w = 'WORD'

spl = [list(y) for x, y in itertools.groupby(lst, lambda z: z == w) if not x]

这会创建一个没有分隔符的拆分列表,这对我来说看起来更合乎逻辑:

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

如果您坚持要包含分隔符,这应该可以解决问题:

spl = [[]]
for x, y in itertools.groupby(lst, lambda z: z == w):
    if x: spl.append([])
    spl[-1].extend(y)

关于python - 根据分隔符拆分列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15357830/

相关文章:

python - Django 管理员突然仅在生产环境中注销(拒绝执行脚本,因为其 MIME 类型 ('text/html' )不可执行)

python - Python可以在并行线程中解码JSON吗?

Python安装失败Windows 8.1-错误0x80240017 : Failed to execute MSU package

string - 字符串函数中的 Haskell 字符

excel - 如何在vba(excel)中使用multichar字符串作为分隔符来拆分字符串

python - 我可以从 python 内部找到 python 可执行文件的路径吗?

python - 属性错误 : 'list' object has no attribute 'gainWeight'

java - List<A> 引用 List<subclass-of-A>

linux - 使用 AWK 和 BASH 将大型压缩文件拆分为多个输出

regex - 将列拆分为多列 R