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]]
我用来拆分列表的地方。在上面的链接中,有一个单行解决方案可以做到这一点