Python 基于特定值拆分整数列表

Python 基于特定值拆分整数列表,python,python-3.x,Python,Python 3.x,如何根据特定值拆分整数列表?例如,请参见以下示例: inp = [1, 3, 4, 5, -999, 0, 0, 1, 3, 5, -999, 85, 82, 84] outs = magic_function(inp) >> [[1,3,4,5], [0,0,1,3,5], [85,82,84]] # expected output is like this 输出将是基于-999拆分的列表列表。到目前为止,我使用for循环处理它,或者将它转换为字符串,然后使用str.spli

如何根据特定值拆分整数列表?例如,请参见以下示例:

inp = [1, 3, 4, 5, -999, 0, 0, 1, 3, 5, -999, 85, 82, 84]

outs = magic_function(inp)

>> [[1,3,4,5], [0,0,1,3,5], [85,82,84]] # expected output is like this
输出将是基于-999拆分的列表列表。到目前为止,我使用for循环处理它,或者将它转换为字符串,然后使用
str.split('-999')
,但我想知道有什么优雅(更有效)的方法可以做到这一点吗?

这可以:

from itertools import groupby

inp = [1, 3, 4, 5, -999, 0, 0, 1, 3, 5, -999, 85, 82, 84]

sep = -999
ret = [list(items) for key, items in groupby(inp, lambda x: x == sep) if not key]

print(ret)  # [[1, 3, 4, 5], [0, 0, 1, 3, 5], [85, 82, 84]]
我用来拆分列表的地方。

在上面的链接中,有一个单行解决方案可以做到这一点