我有一个如下所示的列表:-
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 中检查 new
或 old
。
然后从结果中删除空列表。
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/