P018 python基础:数据类型之列表切片02

写在前头(文字比较多,建议动手会更理解透彻)

什么叫切片呢?

我们把每个列表元素当成是“一片”,可以根据索引任意取一片,或者多片,甚至是全部。这种方法叫切片。

语法:list[index1:index2:step]:index1,index2为起始区间,也可以单独使用,

step为步长,即隔多长取一个,默认为1

下面我们来看看切片的集中方式。

1,正数使用情况(即正常使用情况)

lis = ["a","b","c","d","e","f","g"]#正数使用情况(从左往右取值)print(lis[:])print(lis[1:])print(lis[1:5])print(lis[:5])print(lis[:5:2])

通过参考输出就很容易理解是什么意思。不再赘述。

2,index为正数,步长为负数的情况

注意:步长不能为0,否则报错。

3,使用负数(从右到左)

一,因为没有-0的说法,所以从右到左,-1就代表了第一个元素

二,从上面的例子应该看出,所有的索引值都是包头不包尾,即不会去匹配结束位置的那个值。

三,反向取值(index左值大于右值),step要改为负数才合法,如下:

print(lis[-1:-8:-1])

四,默认情况下,index左边值要小于右边值,否则取不到值。

其中三,四点不适合用于正负混合的情况,且刚好相反。且看下面。

4,正负混合

讨论一种情况:lis[1:-5]

参考上面的图,我们得知正负混合的默认情况下,左值比右值大时,两者之间必须有一个元素隔开,否则也是取不到值的。这种情况属于不包头也不包尾。

5,连续切片

理解:

第一次切片=['a', 'b', 'c', 'd', 'e']

第二次切片=['b', 'c', 'd']

第三次切片=['c', 'd']

tips:理论上只要可切(列表非空),就无限可切。

6,三个参数可以是表达式,返回值是整数即可:

7,超出索引值的情况

从以上图可以得知,在合法的情况下,超出索引值范围不会报错,只是取不到值而已,返回空列表。

8,字符串,元组都可以进行切片,方法是一样的,自行练习。

9,插入元素

注意位置的形式:两个数字必须相同,否则就是另外一个意思了。

10,替换

替换很有意思,特别是后面的那个数字。下面几个图来对比下就知道到底是什么情况了。

一,只有index1的情况下,index=0表示用["1","2","3"]替换整个列表;index=1,2,3......的情况表示用["1","2","3"]替换该索引值(不包含)后面的所有值。

二,有index1,index2的情况。

1,index1 <=index2时,表示从index1位置插入值

2,index1 > index2表示从index1开始替换值,被替换的值由替换值和index2共同决定。规则如下:

1,index2值<=替换值的个数(图中index2=2,3的情况),则直接插入替换值

2,index2值 > 替换值的个数(图中index2=4,5的情况),要删除原列表的元素。被删除的个数为:index2-替换值的个数

这篇文字比较多,但其实只要根据图片中的去操作了,还是很好理解的。

-------------------------------------------------------------------

还是有疑惑,可以加wx(mirror2013520)或者关注公众号(pyer_up)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容