Python:[-1]、[:-1]、[::-1]、[n::-1] 原理大详解(超全超仔细!)

Python中切片原理

0 下标说明

无论是str还是list等,从左到右下标从0开始,从右到左下标从-1开始
如:str = 'python',下标示意图如下:
在这里插入图片描述

1 两参数:[开始:结束]

知识点1: 遵循左闭右开原则,如:[0:9]等价于数学中的[0,9)

示例:

# 字符串中用法
str = 'python'
print(str[0:3])  # pyt  左闭右开,从位置0到 位置3前的位置2
print(str[0:5])  # pytho 左闭右开,从位置0到 位置5前的位置4
print(str[:-1])  # pytho  左闭右开,从位置0到 位置-1前的-2位置
print(str[:-2])  # pyth  左闭右开,从位置0到 位置-2前的-3位置
# 列表中用法 (同字符串用法!)
list = [1, 2, 3, 4 , 5, 6]
print(list[0:3]) # [1, 2, 3]  左闭右开 从位置0到位置2
print(list[0:5]) # [1, 2, 3, 4, 5]  左闭右开 从位置0到位置4
print(list[:-1]) # [1, 2, 3, 4, 5]  左闭右开 从位置0到位置-1前的-2,即:位置4
print(list[:-2]) # [1, 2, 3, 4]  左闭右开 从位置0到位置-3,即:位置3

知识点2: 缺省值:
(1)左边缺省,默认为0
(2)右边缺省,默认到结束位置
(3)左、右都缺省,默认原始值,即:str[:]、str 输出相同,相当于str[:]复制了str

示例:

# 字符串中用法
str = 'python'
print(str[:3]) # pyt
print(str[:5]) # pytho
print(str[1:]) # ython
print(str[0:]) # python
print(str[:])  # python
# 列表中用法
list = [1, 2, 3, 4 , 5, 6]
print(list[:3]) # [1, 2, 3]
print(list[:5]) # [1, 2, 3, 4, 5]
print(list[1:]) # [2, 3, 4, 5, 6]
print(list[0:]) # [1, 2, 3, 4, 5, 6]
print(list[:]) # [1, 2, 3, 4, 5, 6]

2 三参数:[开始:结束:步长]

知识点1: 步长的正负
步长的值>0,则:从左往右取值
步长的值<0,则:从右往左取值

知识点2: 步长的取值
步长的值 = n,表示:向左或右数,n步取一个值

知识点3: 缺省值
前两个参数[开始:结束]二参数情形,步长缺省值为:1,即:从左往右数1步取一个值

示例:

# 字符串中用法
str = 'python'
print(str[::])  # python
print(str[::1]) # python
print(str[::2]) # pto 从左往右数,数2步,取一个值
print(str[::-1]) # nohtyp 从右往左数,数1步,取一个值,即:取全部值
print(str[::-2]) # nhy 从右往左数,数2步,取一个值
# 列表中用法
list = [1, 2, 3, 4 , 5, 6]
print(list[::]) # [1, 2, 3, 4, 5, 6]
print(list[::1]) # [1, 2, 3, 4, 5, 6]
print(list[::2]) # [1, 3, 5]
print(list[::-1]) # [6, 5, 4, 3, 2, 1]
print(list[::-2]) # [6, 4, 2]
# [n::-1] 示例
# 先找下标值n,再翻转(从右到左)取值
str = 'python'
list = [1, 2, 3, 4 , 5, 6]
print(str[1::-1]) # yp 先找到下标1的值:y,从右往左取值:yp
print(str[2::-1]) # typ 先找到下标2的值:t,从右往左取值:typ
print(list[1::-1]) # [2, 1] 先找到下标1的值:2,从右往左取值:[2, 1]
print(list[2::-1]) # [3, 2, 1] 先找到下标2的值:3,从右往左取值:[3, 2, 1]

参考

  1. python 中的[:-1]和[::-1]
  2. python [:-1] [::-1]的理解
  3. python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
  4. python中[::-1]、[::1]、[开始:结束:步进]
  • 12
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值