Python中的字符串切片/子字符串/范围
我是Python的新手,我想知道一些我觉得很好奇的事情 假设我有这个:Python中的字符串切片/子字符串/范围,python,string,Python,String,我是Python的新手,我想知道一些我觉得很好奇的事情 假设我有这个: s = "hello" 然后: s[1:4]打印“ell”,这很有意义。。。 然后s[3:-1]只打印“l”,这也有意义 但是 s[-1:3]的范围相同,但向后返回空字符串“”。。。s[1:10]或s[1:-20]根本没有抛出错误。。哪个。。在我看来,它应该产生一个错误,对吗?典型的越界错误..: 我的结论是,范围总是从左到右,我想与社区确认这是否如我所说的那样 谢谢 s[-1:3]返回空字符串,因为该范围内没有任何内容。
s = "hello"
然后:
s[1:4]
打印“ell”,这很有意义。。。
然后s[3:-1]只打印“l”,这也有意义
但是
s[-1:3]
的范围相同,但向后返回空字符串“”。。。s[1:10]或s[1:-20]
根本没有抛出错误。。哪个。。在我看来,它应该产生一个错误,对吗?典型的越界错误..:
我的结论是,范围总是从左到右,我想与社区确认这是否如我所说的那样
谢谢
s[-1:3]
返回空字符串,因为该范围内没有任何内容。它请求从最后一个字符到第三个字符的范围向右移动,但最后一个字符已经超过第三个字符
默认情况下,范围从左到右
有几种方法可以反转步骤,或改变其大小。所以s[-1:3:-1]
只会给你一个“o”。该切片中的最后一个-1告诉您切片应该从右向左移动
如果请求的范围不在字符串中,切片不会抛出错误,它们只会为这些位置返回一个空字符串。范围被“钳制”到字符串的范围。。。i、 e
s[:10]
将返回前10个字符,如果字符串不够长,则返回更少的字符
负索引意味着从末尾开始计数,因此s[-3:]
采用最后三个字符(如果字符串较短,则采用更少的字符)
可以使范围向后,但需要使用明确的步骤,如
s[10:5:-1]
您也可以简单地使用
s[::-1]
或者将所有字符置于相等位置,并使用
s[::2]
它有助于将语言包含为标记。