Python 列表、元组、字符串切片操作 [ ]

备忘录:

Python中:字符串、列表、元组 都可以切片,切片操作使用方括号操作符:[ ]

语法:[start:stop:step]
    start: 起始索引
    stop: 终止索引
    step: 间距(步幅)
    
1,切片操作返回一个新的对象,不会改变原对象。
2,start、stop:索引值,必须是整型数(must be integers),可正可负可缺省。当为负数时,会反向索引:如,-1 代表末尾元素的索引。当 start >= stop 时切片结果为空对象 这里是比较的 start、stop 对应的索引,不是字面值 )
3,step:间距(步幅),必须是非零整型数,不能为0(切记),可以缺省,缺省值是 1
4,切片操作的结果:前闭后开,包含start索引对应的元素,不包含stop索引对应的元素。
5,step为负数时,返回一个倒序排列的结果(倒序排列+切片,一条龙服务),切记:不是先切片,后倒序。从结果上看:是先倒序,后切片。具体源码细节没研究...

几个小栗子加深理解:

#-*-encoding:utf-8-*-
#python 3.6

#s = "0123456789"
s = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
#s = ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")

print("01:     s[:] >>>", s[:])      #01:     s[:] >>> ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
print("02:    s[::] >>>", s[::])     #02:    s[::] >>> ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
print("03:   s[::2] >>>", s[::2])    #03:   s[::2] >>> ['0', '2', '4', '6', '8']
print("04:  s[::-2] >>>", s[::-2])   #04:  s[::-2] >>> ['9', '7', '5', '3', '1']
print("05:  s[2::3] >>>", s[2::3])   #05:  s[2::3] >>> ['2', '5', '8']
print("06:   s[-2:] >>>", s[-2:])    #06:   s[-2:] >>> ['8', '9']
print("07:    s[:6] >>>", s[:6])     #07:    s[:6] >>> ['0', '1', '2', '3', '4', '5']
print("08:   s[:-4] >>>", s[:-4])    #08:   s[:-4] >>> ['0', '1', '2', '3', '4', '5']
print("09:   s[2:4] >>>", s[2:4])    #09:   s[2:4] >>> ['2', '3']
print("10:  s[-8:4] >>>", s[-8:4])   #10:  s[-8:4] >>> ['2', '3']
print("11:  s[2:-4] >>>", s[2:-4])   #11:  s[2:-4] >>> ['2', '3', '4', '5']
print("12: s[-4:-2] >>>", s[-4:-2])  #12: s[-4:-2] >>> ['6', '7']
print("13: s[-2:-4] >>>", s[-2:-4])  #13: s[-2:-4] >>> []

 

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值