gpt4 book ai didi

python - 根据分隔符拆分列表

转载 作者:IT老高 更新时间:2023-10-28 21:09:08 27 4
gpt4 key购买 nike

我有一个包含各种字符串值的列表。每当我看到 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com