关于步长的进一步补充解释

关于步长的进一步补充解释

        翻看了之前学习python中关于步长踩坑的笔记,才发现自己又一次栽进去了,这么说原先的学习中一定是存在了很大的问题,或者压根没搞清楚其中的含义。最近deep seek风靡全球,我这次也用它来进行更多的深入学习。

        在Python中,切片操作的语法是 [start:end:step],其中start是起始索引,end是结束索引(但不包括该索引对应的元素),step是步长。默认情况下,start是0,end是序列长度,step是1。如果步长为正数,切片从左到右进行;如果为负数,则从右到左。

        现在来看例子:str[1:5:2]。这里的str是一个字符串。假设str是"abcdef",那么索引0是'a',1是'b',2是'c',3是'd',4是'e',5是'f',依此类推。

        根据切片规则,start是1,end是5,step是2。所以起始位置是索引1的元素,即第二个字符。结束位置是索引5,但不包括它。步长是2,意味着每隔一个字符取一个。

        接下来需要确 定切片的范围。从索引1开始,每次增加2。所以第一次取索引1,然后索引1+2=3,接着3+2=5。但是因为end是5,所以索引5是不包含的,因此实际取的是索引1和3的元素。

        例如,如果str是"abcdefgh",那么索引1到5的元素是"b c d e f"。但步长是2,所以选中的索引是1、3,对应的字符是'b'和'd'。因此结果应该是"bd"。


print(''.join(sorted("snake")))
str = '123456789'

print(str)  # 输出字符串
print(str[0:-1])  # 输出第一个到倒数第二个的所有字符
print(str[0])  # 输出字符串第一个字符
print(str[2:5])  # 输出从第三个开始到第六个的字符(不包含)
print(str[2:])  # 输出从第三个开始后的所有字符
print("----------------")
print(str[1:5:2])  # 输出从第二个开始到第五个且每隔一个的字符(步长为2)
# 23/45/67

print(str * 2)  # 输出字符串两次
print(str + '你好')  # 连接字符串

print('------------------------------')

print('hello\nrunoob')  # 使用反斜杠(\)+n转义特殊字符
print(r'hello\nrunoob')  # 在字符串前面添加一个 r,表示原始字符串,不会发生转义

小技巧

参数

方向

作用

start

左→右

起始位置(包含)

end

左→右

结束位置(不包含)

step

正数→正向取

负数→反向取(需调换start/end)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值