gpt4 book ai didi

python - 在字符串后拆分列表并创建新的列表列表

转载 作者:行者123 更新时间:2023-12-02 11:56:05 24 4
gpt4 key购买 nike

我想在字符串“Title”之后将一个长列表分成几部分。给出的是具有以下结构的列表:

l = ["Title abc", "text1", "text", "Title def", "text4", "text5", "Title ghi", "text4", "text5" ...]

输出应该是:

new = [["Title abc", "text1", "text"], ["Title def", "text4", "text5"], ["Title ghi", "text4", "text5"]]

开头始终是“Title”,它也是下一场比赛的分隔符。我试过了

re.findall ('Title.*Title).dx', l, re.DOTALL)

但这将停止在“Title ghi”处。你会怎么做?

最佳答案

与上面的答案类似,但扩展为任何可迭代 - 您可以构建一个唯一值生成器,每次满足条件时其值都会递增,然后将其用作 itertools.groupby 的一部分构建子列表,例如:

from itertools import accumulate, groupby

groups = accumulate(el.startswith('Title') for el in data)
out = [[el[1] for el in g] for _, g in groupby(zip(groups, data), lambda L: L[0])]

将给出以下数据:

['Title abc',
'text1',
'text',
'more text',
'Title def',
'text4',
'Title x',
'Title ghi',
'text4',
'text5']

给你一个:

[['Title abc', 'text1', 'text', 'more text'],
['Title def', 'text4'],
['Title x'],
['Title ghi', 'text4', 'text5']]

关于python - 在字符串后拆分列表并创建新的列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60137017/

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