猿问

Python中的范围索引

我对 python 中 Range 函数的理解是:


范围(起点、终点、索引数量)

当“索引数量”为负数时,您基本上是在倒退,从末端到前面。


我的问题是:


反向时,位置 -end point-的值是否不会被评估?

例如,如果我想反转一个字符串“a,b,c”(我知道你可以只做 string[::-1],但这不是重点)


string = 'a,b,c'


strlist = list(string.split(","))


empty_list = []


for i in range((len(strlist)-1),-1,-1):

  print(strlist[i])


#this gets me "cba"


但是,当我在 for 循环中将端点从“-1”更改为“0”时,只会打印“cb”:


string = 'a,b,c'


strlist = list(string.split(","))


empty_list = []


for i in range((len(strlist)-1),0,-1):

  print(strlist[i])


#this only gets me "cb"

谢谢你的时间 :)


jeck猫
浏览 165回答 1
1回答

HUX布斯

第一个示例中发生的情况是:for i in range((len(strlist)-1),-1,-1):  print(strlist[i])len(strlst) - 1= 2,因此当您将其用作 for 循环的开始索引时,这显然是最后一个字母,因为它的索引为0, 1, 2. 这将返回所需的结果c, b, a。当你有-1你的终点时,它将在从迭代器中减去 3 次2, 1, 0后结束(,当它到达时结束-1。)for i in range((len(strlist)-1),0,-1):  print(strlist[i])每当您0作为终点输入时,它将停在0列表的位置或第一项。那将返回c, b而不是c, b, a. 希望这可以帮助。
随时随地看视频慕课网APP

相关分类

Python
我要回答