小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。
废话不多说,开始今天的题目:
问:说说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]
文末推荐文章链接:
https://www.jianshu.com/p/15715d6f4dad
如果对于参考答案有不认同的,大家可以在评论区指出和补充,欢迎留言!