python数组分割?

Python012

python数组分割?,第1张

functionname= lambda anylist, n: [anylist[i * 3:(i + 1) * 3] for i in range(len(anylist)//n+1 if len(anylist)%n else len(anylist)//n)]

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)

你随便选一种就好,不过推荐后面的这种