python - 根据 python 中的值分隔列表

标签 python list split

我有一个如下所示的列表:-

list1 = ['box','ball','new','bat','chess','old']

我想根据值拆分此列表。在上面的列表中,我想将 'new' 之前的值插入到新列表中,并且 'old' 之前的值必须插入到新列表中。 'new''old' 之前的值可以是一个或多个,但这里有两个值。我尝试使用 split_after 但得到以下结果:-

from more_itertools import split_after

list1 = ['box','ball','new','bat','chess','old']
list(split_after(list1, lambda x: x == "new"))

结果:-

[['box', 'ball', 'new'], ['bat', 'chess', 'old']]

但是希望输出:-

result1 = ['box', 'ball']
result2 = ['bat', 'chess']

最佳答案

您可以使用split_at ,并在 lambda 中检查 newold

然后从结果中删除空列表。

from more_itertools import split_at

list1 = ['box', 'ball', 'new', 'bat', 'chess', 'old']
print(list(filter(None, split_at(list1, lambda x: x == "new" or x == "old"))))

输出

[['box', 'ball'], ['bat', 'chess']]

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

相关文章:

c# - 正则表达式拆分字符串,提取前面的字符串值和方括号之间的数值

python - 缩放图片的一部分

python - 全局变量如何/为什么可用/在嵌套类实例的范围内,但 "nonlocal"变量不可用?

python - 如何从多个数据帧填充新列?

list - 字典列表中值的总和

java - 制作Java I/O并更改文件以在java中分割

python - random.choice 不是随机的

pandas - 如何按列表中的值对数据框进行排序

Python:与 list.remove 混淆

python - 根据元素拆分 Numpy 数组,其中数组的每个元素都是唯一的