Python将数组拆分为正数和负数,同时保持列表结构

Chr*_*ris -1 python

我有这个问题,我必须在保持列表结构的同时拆分负数和正数列表.

零被认为是积极的

例:

输入数据

[1,  1,  1, -2, -2, -2,  1,  1,  1, -2, -2, -2,  1,  1,  1]
Run Code Online (Sandbox Code Playgroud)

输出数据

[[1,  1,  1], [-2, -2, -2], [1,  1,  1], [-2, -2, -2], [1,  1,  1]]
Run Code Online (Sandbox Code Playgroud)

有谁能请我向我提出一个很好的方向来解决这个问题?

我已经研究np.split过条件或切片但有条件,但也没有运气.

Nik*_*o B 6

如果没有进一步的研究,我会选择标准库中的itertools.groupby.也许有更好的解决方案.

import itertools
vals = [1,  1,  1, -2, -2, -2,  1,  1,  1, -2, -2, -2,  1,  1,  1]
splitted = [list(g) for i, g in itertools.groupby(vals,lambda x: x<0)]
Run Code Online (Sandbox Code Playgroud)

如评论中所述,您必须选择如何处理0并相应地调整lambda.