协慌网

登录 贡献 社区

有没有办法在 Python 中对字符串进行子串?

有没有办法在 Python 中对字符串进行子串,以获取从第 3 个字符到字符串末尾的新字符串?

也许像myString[2:end]

如果离开第二部分意味着 '直到结束',如果你离开第一部分,它是从一开始就开始的吗?

答案

>>> x = "Hello World!"
>>> x[2:]
'llo World!'
>>> x[:2]
'He'
>>> x[:-2]
'Hello Worl'
>>> x[-2:]
'd!'
>>> x[2:-2]
'llo Worl'

Python 将这个概念称为 “切片”,它不仅仅是字符串。看看这里的全面介绍。

只是为了完整性,没有人提到它。数组切片的第三个参数是一个步骤。因此,反转字符串非常简单:

some_string[::-1]

或者选择替代字符将是:

"H-e-l-l-o- -W-o-r-l-d"[::2] # outputs "Hello World"

通过字符串前进和后退的能力可以保持与开始或结束的数组切片的一致性。

Substr()通常(即 PHP 和 Perl)以这种方式工作:

s = Substr(s, beginning, LENGTH)

所以参数是beginningLENGTH

但是 Python 的行为是不同的; 它预计在 END(!)之后开始和一个。 初学者很难发现这一点。所以正确替换 Substr(s,开头,LENGTH)是

s = s[ beginning : beginning + LENGTH]