Python 带反向索引的字符串切片

Python 带反向索引的字符串切片,python,string,slice,Python,String,Slice,我正在使用以下代码研究字符串的切片: s='abcdefgh' print(len(s)) print(s[-1:-9:-1]) print(s[-8]) 其输出为: 8 hgfedcba a 为什么在打印反向时,我们需要将最后一个字符,即“a”切到-9?这仅仅是因为Python中的索引是如何工作的 s[-1:-9:-1]有8个字符,就像s或s[0:9:1]有8个字符一样。最后一个索引总是被忽略。这样做的目的是,像range(n)这样的东西,就像调用所建议的那样,n术语,尽管它从0变为n-1

我正在使用以下代码研究字符串的切片:

s='abcdefgh'
print(len(s))
print(s[-1:-9:-1])
print(s[-8])
其输出为:

8
hgfedcba
a

为什么在打印反向时,我们需要将最后一个字符,即“a”切到-9?

这仅仅是因为Python中的索引是如何工作的

s[-1:-9:-1]
有8个字符,就像
s
s[0:9:1]
有8个字符一样。最后一个索引总是被忽略。这样做的目的是,像
range(n)
这样的东西,就像调用所建议的那样,
n
术语,尽管它从0变为
n-1


如果你完全忘记了数字,只看这个对象,就会更清楚:
s[0:len(s):+1]
。反转索引的符号并减去-1以获得相反的字符串
s[-0-1:-len(s)-1:-1]

在python中,可以使用切片来获得对象的子部分

  • len(S)-返回字符串的长度
  • S[index]-从一开始就获取特定索引处的字符。正指数
  • S[-index]-从末尾获取特定索引处的字符。负指数
  • S[start:end]-将字符串从起始索引切片到结束位置而不是索引
  • S[start:]-将字符串从起始索引切片到最后一个位置
  • S[:end]-将字符串从0索引切片到结束位置
  • S[:]-像复制字符串一样获取整个字符串
  • S[i:j:k]-使用步长对字符串进行切片。默认k为+1。像s[2:10:2]
  • s[:-1]-反转字符串

@matt It is Python:-)这是否回答了您的问题?切片不包括我的答案上下文中的
结束
位置(例如
s=“abcd”;s[0:4]
不包括
s[4]
),位置从1开始,索引从0开始。