python,运用np,内置函数的切片

a是可变的数组,给a,或者b切片。

a=[1,2,0,4,5,6,0,0,0,0,7,0,8,9]
b=np.array(a)

输出结果是:被0隔开的非0数组。
例,a的输出结果是:

c=[[1,2],[4,5,6],[7],[8,9]]

我使用的是循环遍历列表,然后逐个判断是否需要添加到相应列表来完成题目要求。代码如下:

参考链接:

python中的array是什么意思_python中数组(numpy.array)的基本操作_BE东欲的博客-CSDN博客
Python教程:在Python中遍历列表详解_站长在线的博客-CSDN博客_python 遍历列表

import numpy as np  #https://blog.csdn.net/weixin_42577243/article/details/112864277
a=[1,2,0,4,5,6,0,0,0,0,7,0,8,9]
b=np.array(a)

#print(a)

c=[]  #存放最终结果的列表
t=[] #存放被0分隔的数字的列表t

#https://blog.csdn.net/u010292470/article/details/121090914
for i in a:  #遍历原始列表
    
    if(i!=0):   #如果原始列表当前值不是0,则添加到分隔数字的列表t
        t.append(i)
        #print("t.append(i)",i)
    else :  #如果当前是数字是0,则判断与执行是否将分隔数字的列表t添加到最终结果列表c
    #https://www.jianshu.com/p/3a7ffd6884d8
        if len(t)!=0: #如果分隔数字的列表c有值,则添加到最终结果列表,同时将分隔数字的列表t置为空列表,以存放下一组数字
            #print(t)
            
            c.append(t)
            t=[]
            
#判断最后一组分隔数字列表t是否有值,有值则将最后一组数字添加到最终结果列表c
if len(t)!=0:
    c.append(t)
    
#打印结果    
print(c)
    

img