print(functionname(a, 3))
可以按任意长度切分
arr = [1,2,3,6,1,6,8,1,9,7,5,1]coor, res= [], []
i = j = count = 0
for idx, num in enumerate(arr):
if num == 1:
if i==j:
i = idx
else:
if i<j:
i = idx
else:
j = idx
coor.append((i, j) if i < j else (j ,i))
for cr in sorted(set(coor) - {(0, 0)}):
res.append(arr[cr[0]:cr[1]+1])
print (res)
如果你用的Python2就把最后的print的括号去掉就行,Python3的话就不用
用另外一种方法弄了一下,可能更直观些,附上如下
arr = [1,2,3,6,1,6,8,1,9,7,5,1]coor, res= [], []
i = j = 0
idx = 1
while idx < len(arr):
while arr[idx]!=1:
idx += 1
if i==j:
i = idx
else:
if i < j:
i = idx
else:
j = idx
idx += 1
coor.append((i, j) if i<j else (j, i))
for cr in coor:
res.append(arr[cr[0]:cr[1]+1])
print(res)
你随便选一种就好,不过推荐后面的这种