gpt4 book ai didi

python - 按特定元素拆分列表以获取列表列表 Python

转载 作者:太空宇宙 更新时间:2023-11-04 08:30:59 24 4
gpt4 key购买 nike

输入

['~', 'n1', 'n2', ..., 'nn', '~', 'k1', 'k2', ..., 'kn', '~']

期望的输出:

[['n1', 'n2', ..., 'nn'],['k1', 'k2', ..., 'kn']]

我见过 itertools groupby 但无法让它工作。任何帮助,将不胜感激。而且 ... 实际上不在列表中,只是说中间还有更多元素

最佳答案

groupby 方法是最好的方法。

使用键函数 item != '~' 进行分组,并过滤​​为 True 的键(当 x=='~',关键函数返回 Falseif k 条件将其过滤掉)

import itertools

lst = ['~', 'n1', 'n2', 'nn', '~', 'k1', 'k2', 'kn', '~']

result = [list(v) for k,v in itertools.groupby(lst,lambda x : x!='~') if k]

结果:

[['n1', 'n2', 'nn'], ['k1', 'k2', 'kn']]

请注意,您必须对发布的组强制迭代,因为 groupby 返回可迭代对象(以防万一您只需要再次迭代它们)

如果你有空字符串,那就更简单了:不需要 lambda,依赖值的真实性并使用 bool 运算符:

lst = ['', 'n1', 'n2', 'nn', '', 'k1', 'k2', 'kn', '']

result = [list(v) for k,v in itertools.groupby(lst,bool) if k]

关于python - 按特定元素拆分列表以获取列表列表 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52935960/

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