刚自学python,在做列表切分时,想以一个特征值为节点对列表切分
a=[0.1,0.2,0.3,0.5,0,0.3,0.7,0,0.9,0.8,0,4,0.5,0]
r = [i for i in range(len(a)) if a[i] == 0]
b=[]
for n in r:
b=a[:n+1]
print(b)
[0.1, 0.2, 0.3, 0.5, 0]
[0.1, 0.2, 0.3, 0.5, 0, 0.3, 0.7, 0]
[0.1, 0.2, 0.3, 0.5, 0, 0.3, 0.7, 0, 0.9, 0.8, 0]
[0.1, 0.2, 0.3, 0.5, 0, 0.3, 0.7, 0, 0.9, 0.8, 0, 4, 0.5, 0]
我自己写的对列表a以0为节点进行切分,我的思路是先确定列表中特征值0的索引,在对取到的索引值用for循环,但卡在了每次都是从最开始取数,没有达到我想的以0分段取值的效果,刚学python所以请求帮助,谢谢!
[0.1, 0.2, 0.3, 0.5, 0]
[0.3, 0.7, 0]
[0.9, 0.8, 0]
[4, 0.5, 0]
我是这样写的:能得到你要的结果
a = [0.1,0.2,0.3,0.5,0,0.3,0.7,0,0.9,0.8,0,4,0.5,0]
b = []
for i in range(len(a)):
b.append(a[i])
if a[i] == 0:
print(b)
b = []
a = [0.1, 0.2, 0.3, 0.5, 0, 0.3, 0.7, 0, 0.9, 0.8, 0, 4, 0.5, 0]
r = [i for i in range(len(a)) if a[i] == 0]
b = []
s = [0]
for n in r:
s.append(n+1)
# print(s)
for i, j in zip(s, r):
# print(i, j)
print(a[i:j+1])
新产生的s为[0, 5, 8, 11, 14],然后使用zip函数,即可得出你所要的结果