python python字符串 - 有没有办法在Python中对字符串进行子串处理?




5 Answers

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

Python将这个概念称为“切片”,它不仅仅适用于字符串。 here看一看全面的介绍。

python字符串转义函数 python字符串子串

有没有办法在Python中对字符串进行子串处理,以便从第三个字符到字符串的末尾得到一个新的字符串?

也许像myString[2:end]

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




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

s = Substr(s, beginning, LENGTH)

所以参数开始和长度

但是Python的行为是不同的,它期望在END(!)之后开始。 初学者很难发现这一点。 所以正确的替代Substr(s,开始,LENGTH)是

s = s[ beginning : beginning + LENGTH]



一个例子似乎缺少这里:完整(浅)的副本。

>>> x = "Hello World!"
>>> x
'Hello World!'
>>> x[:]
'Hello World!'
>>> x==x[:]
True
>>> 

这是创建序列类型副本(而非interned字符串)的常用方式。 [:]浅拷贝列表,请参阅python-list-slice-used-for-no-obvious-reason




除了“结束”之外,你已经拥有了它。 它被称为切片符号。 你的例子应该阅读。

new_sub_string = myString[2:]

如果省略第二个参数,则它隐含地是字符串的结尾。




也许我错过了,但是我在这个页面上找不到原始问题的完整答案,因为变量在这里没有进一步讨论。 所以我不得不继续寻找。

由于我还没有被允许发表评论,所以让我在这里加上我的结论。 我确信在访问此页面时我不是唯一对此感兴趣的人:

 >>>myString = 'Hello World'
 >>>end = 5

 >>>myString[2:end]
 'llo'

如果你离开第一部分,你会得到

 >>>myString[:end]
 'Hello' 

如果你离开:在中间,你得到最简单的子字符串,这将是第5个字符(从0开始计数,所以在这种情况下它是空白的):

 >>>myString[end]
 ' '



Related

python string