def split_array(arr):
new_arr = []
subarr = []
for elem in arr:
if (elem >= 0 and subarr and subarr[-1] < 0) or (elem < 0 and subarr and subarr[-1] >= 0):
new_arr.append(subarr)
subarr = []
subarr.append(elem)
if subarr:
new_arr.append(subarr)
return new_arr
3条答案
按热度按时间xbp102n01#
你可以使用
array_split
,diff
,nonzero
:Ouptut:
中间体:
对于作为输出的列表:
输出量:
或者使用
itertools.groupby
:输出量:
方法比较
mccptt672#
如果你想要标准的python列表,你可以使用
itertools.groupby
:图纸:
igetnqfo3#
你可以尝试以下逻辑: