切片的本质:通过切片来截取指定的元素,形成一个新的容器。
切片的具体阐释:
- 此切片非切片面包的切片,而是python语言中的切片。
- 切片:顾名思义,就是把整块的东西分割开来。
- python语言中的切片是把一个容器截取一部分,截取的部分形成一个新的容器。
关于如何切的问题:
这是一个好问题,就和切蛋糕一样,都需要找到切的开始位置和结束位置,找到切片的开始位置和结束位置就可以切片了。
举个小例子:
在列表a_list =[1,2,3,4,5,6,7,8,9]里,找到比5小的数字,我们就可以进行切片操作把1到4集体切走。
现在就引入到我们的切片语法格式啦。
格式如下:
容器名[起始位:结束位]
这里说的起始位和结束位都是说的容器元素的下标索引,需特别注意。
注意:包含起始位的元素,不包括结束位的元素,记住左闭右开即可。
让我们来试试在列表a_list =[1,2,3,4,5,6,7,8,9]里,找到比5小的数字:
a_list = [1,2,3,4,5,6,7,8,9]
print(a_list[0:4])
运行结果如下:
接下来我们在考虑一个事,如果在切片的时候,指定索引是偶数,这个怎么操作呢,这就引出切片的步长操作了,切片的默认步长是1省略不写,当然也可以按自己情况指定步长。
步长:表示获取元素的间隔,默认值是1,步长可以是负数不能是0
语法格式:容器名[起始位:结束位:步长]
让我们来试试在列表a_list =[1,2,3,4,5,6,7,8,9]里,找到下标索引是偶数的元素:
a_list = [1,2,3,4,5,6,7,8,9]
print(a_list[0:8:2])
运行结果如下:
当然了,如你所想,切片的开始位置和结束位置有些情况是不写的,主要分为几个情况。
-
省略结束位置会一直切片到容器结束
a_list = [1,3,4,5,6.7,8,9]
print(a_list[1:])
运行结果如下:
-
省略起始位置,则会从第一个元素开始切片
a_list = [1,3,4,5,6.7,8,9]
print(a_list[:4]) # 省略开始位置,则会从第一个元素开始切片
运行结果如下:
-
起始位置和结束位置都没有,会得到一个与原容器一模一样的容器,即副本。
a_list = [1,3,4,5,6.7,8,9]
print(a_list[:]) # 会得到一个与原容器一模一样的容器,即副本
运行结果如下:
特别注意:
切片的下标索引可以是正数也可以是负数,负数就是从后向前切片,因为时间关系省略不写。
切片操作所支持的容器如下:
- 列表
- 元组
- 字符串
切片操作所支持的容器本质为:有序的,可以通过下标索引找到特定元素的容器。
本文结束。
后记:
我写的每篇博客格式都不一样,没有统一的模版格式,都是即兴发挥对着电脑屏幕疯狂输出。不过大致思路都是一样的,我不想写死气沉沉的博客想写偏轻松一点的。这是我一贯的主张。我主张的博客是有代码有分析,严谨中带着轻松,轻松中带着思考。