Python中s[1:][::-1]语法含义解析及LeetCode反转整数代码疑问
理解Python字符串中的
s[1:][::-1] 这是Python字符串切片的链式操作,拆成两步看就清晰了:
第一步:s[1:]——剥离开头的负号
当输入的整数x是负数时,转成字符串后会带负号,比如x=-123对应的s="-123"。s[1:]的意思是从索引为1的位置开始,截取到字符串末尾(Python中字符串索引从0开始),这一步会把开头的负号去掉,得到纯数字的字符串"123"。
第二步:[::-1]——反转字符串
这是Python里反转字符串的常用写法,属于带步长的切片操作:
切片的完整语法是[起始索引:结束索引:步长],这里三个参数都省略时,默认从字符串末尾开始遍历,到开头结束,步长设为-1(即反向遍历)。
把第一步得到的"123"用这个切片处理,就会变成反转后的"321"。
结合代码场景的实际作用
在你提供的整数反转代码里,处理负数时:
- 先用
s[1:]剥离负号,拿到纯数字字符串 - 再用
[::-1]反转数字串 - 最后拼接回负号并转成整数,就得到了反转后的负数(比如
-123反转后变成-321)
额外补充:切片基础规则
给你梳理几个常用切片写法,方便举一反三:
s[a:b]:从索引a截取到索引b(不包含b对应的字符)s[a:]:从索引a截取到字符串末尾s[:b]:从开头截取到索引b(不包含b)s[::n]:每隔n-1个字符取一个;当n=-1时,就是反向遍历整个字符串,实现反转
内容的提问来源于stack exchange,提问作者Le Nguyen
相关产品推荐
相关产品推荐

