我想从第三个字符到字符串末尾获得一个新字符串,例如myString[2:end]。如果省略第二部分意味着“到结尾”,如果省略第一部分,它是否从头开始?


当前回答

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

some_string[::-1]

或者选择其他字符:

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

在字符串中前后移动的能力与从开始或结束排列切片的能力保持一致。

其他回答

除了“结束”,你就在那里。这叫做切片表示法。您的示例应为:

new_sub_string = myString[2:]

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

text = "StackOverflow"
#using python slicing, you can get different subsets of the above string

#reverse of the string
text[::-1] # 'wolfrevOkcatS' 

#fist five characters
text[:5] # Stack'

#last five characters
text[-5:] # 'rflow'

#3rd character to the fifth character
text[2:5] # 'rflow'

#characters at even positions
text[1::2] # 'tcOefo'

Subs()通常(即PHP和Perl)是这样工作的:

s = Substr(s, beginning, LENGTH)

所以参数是开始和长度。

但Python的行为不同;它需要开头和END(!)之后的一个。初学者很难发现这一点。因此,Substr(s,begin,LENGTH)的正确替换为

s = s[ beginning : beginning + LENGTH]
a="Helloo"
print(a[:-1])

在上面的代码中,[:-1]声明从开始打印到最大限制-1。

输出:

>>> Hello

注意:这里a[:-1]也与a[0:-1]和a[0:len(a)-1]相同

a="I Am Siva"
print(a[2:])

输出:

>>> Am Siva

在上面的代码中,[2:]声明从索引2打印到最后一个元素。

请记住,如果您将打印字符串的最大限制设置为(x),那么它将打印字符串直到(x-1),并且还请记住列表或字符串的索引将始终从0开始。

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

既然我还不能发表评论,让我在这里补充我的结论。我确信在访问此页面时,我不是唯一对此感兴趣的人:

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

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

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

 >>>myString[:end]
 'Hello' 

如果将:放在中间,则会得到最简单的子字符串,即第5个字符(计数以0开头,因此在本例中为空):

 >>>myString[end]
 ' '