如何反向处理字符串[::-1]

问题描述 投票:0回答:2

我了解切片语法包含3个参数,即:

  1. 开始

  2. 停止

  3. step

具有以下默认值:

  1. 开始= 0

  2. stop =字符串长度

  3. step = 1

所以,对于

> string = "abc"

> string[::]

将返回

> "abc"

但是,用于

> string[::-1]

不应该返回:

> "a"

因为字符串[start = 0] ='a'然后,string [start + step],即string [0-1] ='c',但由于其不小于stop = 3,它将中断。

或者我是在错误的方向上思考,如果步长为负,python会简单地按通常的方向对字符串进行切片,并返回that字符串的反方向?为了简化,否定步骤在内部如何工作?

python string slice reverse
2个回答
0
投票

当传递负值作为step时,startstop的默认“值”相反。 start从“序列的开始”变为“序列的末端”,stop从“序列的结束”变为“序列的开始”。如果它没有执行此操作,则在执行完整切片时会遇到问题,因为任何切片的结尾都是排他的; mystr[len(mystr)-1:0:-1]将排除第一个字符(因为将不包括0),并且您不能通过-1来代替0,因为那与len(mystr)-1的含义相同(由于Python处理负索引的方式),您一无所获。进行默认设置切换,以便省略结尾(或等效地,显式传递None)一直到开头(包括首尾)是唯一明智的解决方案。


0
投票

step决定要为拼接遍历多少个元素。使用此代码,您可以了解其工作方式。使用负步则相反。

© www.soinside.com 2019 - 2024. All rights reserved.