前两种为大佬写的,后面自己写的。
大佬1,运用列表推导式:导库,不导库,两种。
import more_itertools as mi
s=[0,1,2,0,3,4,5,0,6,7,8,0,9,0]
resu =[i for i in mi.split_at(s, lambda x : x == 0) if i]
print(resu)
"""--result
[[1, 2], [3, 4, 5], [6, 7, 8], [9]]
"""
不导库,你上面的简写成:
s=[0,1,2,0,3,4,5,0,6,7,8,0,9,0]
a = ''.join(map(str, s)).split('0')
c = [list(map(int, i)) for i in map(list, a) if i]
print(c)
大佬2
'''
遍历列表,遇到0就添加路径,空的也添加。
完事再去掉空路径
'''
import numpy as np
a=[1,2,0,4,5,6,0,0,0,0,7,0,8,9]
b=np.array(a)
c=[]
t=[]
for i in a:
if(i!=0):
t.append(i)
else :
if len(t)!=0:
c.append(t)
t=[]
if len(t)!=0:
c.append(t)
print(c)
小弟,自己写的
'''
方案1:
情况1, 当前非零
[X0 XX X]
* * *
添加节点 添加节点 添加节点
添加路径 添加路径
情况2, 当前为0
[0X 00 0]
* * *
跳过 跳过 跳过
'''
a=[1,2,3,0,0,4,0,5,0]
c=[]
b=[]
for i in range(len(a)):
if i == len(a)-1:
if a[i] != 0:
b.append(a[i])
c.append(b)
b=[]
else:
continue
else:
if a[i] != 0 and a[i+1] != 0:
b.append(a[i])
elif a[i] != 0 and a[i+1] == 0:
b.append(a[i])
c.append(b)
b=[]
elif a[i] == 0:
continue
print(c)
本文含有隐藏内容,请 开通VIP 后查看