在机器学习或深度学习中,最开始有一步需要对数据进行清洗筛选等预处理操作,其中有一个很基础但又很重要的操作就是截取数据,如果使用Python进行开发,这就需要用到Python中对于列表的切片操作。今天简单地看了一下切片,记了一点笔记备份于此。
切片操作
>>> Pigs =['pig1','pig2','pig3','pig4','pig5','pig6']
>>> print(Pigs[0:2])#切元素0、元素1
['pig1', 'pig2']
>>> print(Pigs[:2])#从头开始的话前面都不用写,结果同上
['pig1', 'pig2']
>>> print(Pigs[2:5])#切中间的3头猪
['pig3', 'pig4', 'pig5']
>>> print(Pigs[3:])#从第四头猪切到最后
['pig4', 'pig5', 'pig6']
>>> print(Pigs[-3:])#最后三个都切了
['pig4', 'pig5', 'pig6']
>>>
>>> #看看我们最后要了哪几头猪
... for mypig in Pigs[1:4]:
... print(mypig)
...
pig2
pig3
pig4
>>> #根据既有列表创建全新的列表--复制列表
... Big_Pigs = Pigs[:]
>>> print(Big_Pigs)
['pig1', 'pig2', 'pig3', 'pig4', 'pig5', 'pig6']
>>> #为了证明这是两个数组,可以分别添加元素
... #####特别注意,特别注意,此处与C语言不一样,不用赋值Pigs = Pigs.append('pig7'),这样会报错,方法执行完自动保存到原列 表
... Pigs.append('pig7')
>>> Big_Pigs.append('pig8')
>>> print(Pigs)
['pig1', 'pig2', 'pig3', 'pig4', 'pig5', 'pig6', 'pig7']
>>> print(Big_Pigs)
['pig1', 'pig2', 'pig3', 'pig4', 'pig5', 'pig6', 'pig8']
>>>
>>> ####为了与之区分,对比一下直接赋值的方法
... Small_Pigs = Pigs
>>> Pigs.append('pig9')
>>> Small_Pigs.append('pig10')
>>> print(Pigs)
['pig1', 'pig2', 'pig3', 'pig4', 'pig5', 'pig6', 'pig7', 'pig9', 'pig10']
>>> print(Small_Pigs)
['pig1', 'pig2', 'pig3', 'pig4', 'pig5', 'pig6', 'pig7', 'pig9', 'pig10']
>>> #由结果可知,Small_Pigs 与 Pigs其实是一个列表,两个变量指向同一列表
元组
只读性质的列表称之为 元组tuple
>>> #例如一个人的身高体重
... Body_f =(178,58)
>>> print(Body_f[0],Body_f[1])
178 58
>>> #只读性质Body_f[0] = 11编译出错:'tuple' object does not support item assignment
... ##但是,注意,单个元素赋值不允许,但是允许对元组这个变量进行赋值
... Body_f = (180,65)
>>> print(Body_f[0],Body_f[1])
180 65
>>>
由上可见,其实对于列表的切片其实真的很简单,相比于传统的C语言来说,切片之“切”的功效可见一斑。