我对 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"谢谢你的时间 :)
1 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
第一个示例中发生的情况是:
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. 希望这可以帮助。
添加回答
举报
0/150
提交
取消