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


当前回答

如果myString包含一个从偏移量6开始且长度为9的帐号,则可以通过以下方式提取帐号:acct=myString[6:][:9]。

如果OP接受这一点,他们可能希望以实验的方式,

myString[2:][:999999]

它有效-不会引发错误,也不会出现默认的“字符串填充”。

其他回答

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开始。

这里似乎缺少一个示例:完整(浅)拷贝。

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

这是创建序列类型副本(而不是内部字符串)[:]的常见习惯用法。Shallow复制一个列表,请参阅Python列表切片语法,无明显原因。

实现这一点的常见方法是通过字符串切片。

MyString[a:b]提供了从索引a到(b-1)的子字符串。

如果myString包含一个从偏移量6开始且长度为9的帐号,则可以通过以下方式提取帐号:acct=myString[6:][:9]。

如果OP接受这一点,他们可能希望以实验的方式,

myString[2:][:999999]

它有效-不会引发错误,也不会出现默认的“字符串填充”。

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

some_string[::-1]

或者选择其他字符:

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

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