分享

说说Python中切片是什么?

 程序IT圈 2021-01-16


公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助!

小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。

废话不多说,开始今天的题目:

问:说说Python中切片是什么?

答:在Python中切片指的是截取指定范围的数据,对于字符串,元组,和列表都是可以进行切片。

切片操作基本表达式:object[start_index:end_index:step]

start_index:表示起始索引(包含该索引本身);从“起点”还是从“终点”开始,则由step参数的正负决定,step为正从“起点”开始,为负从“终点”开始。

end_index:表示终止索引(不包含该索引本身);该参数省略时,表示一直取到数据到结束,同样也由step参数的正负决定 。

step:正负数均可,其绝对值大小决定了切取数据时的‘‘步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。

注意点:以上三个参数都是可选参数。切片的范围是[start,stop) (左闭右开),step步长参数默认值是1。step不能为0,不然会报错ValueError。

下面用几个常见且易混淆的例子,给大家看一下切片怎么取值,其实看完下面的代码,大家只要记住切片的那3个参数,就万变不离其宗了,看明白了,挺简单的!


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

print(lis[3:7]) # 结果元素里包含下标 3,不含下标 7

print(lis[1:]) # 从下标为1开始,取出 后面所有的元素(没有结束位)

print(lis[:-1]) # 从起始位置开始,取到 倒数第一个元素(不包括结束位本身)

print(lis[:5]) # 从起始位置开始,取到 下标为5的前一个元素(不包括结束位本身)

print(lis[-4:-1]) # 从倒数第4个元素开始,取到 倒数第1个元素(不包括结束位本身)

print(lis[4:-1]) # 从下标第4个元素开始,取到 倒数第1个元素(不包括结束位本身)

print(lis[1:5:2]) # 从下标为1开始,取到下标为5的前一个元素,步长为2(不包括结束位本身)

print(lis[:]) # 取出所有元素(没有起始位和结束位之分),默认步长为1

print(lis[::-1]) # 反向取出所有元素(没有起始位和结束位之分),默认步长为1

输出结果:

[4, 5, 6, 7]
[2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5]
[6, 7, 8]
[5, 6, 7, 8]
[2, 4]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1]

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多