为了账号安全,请及时绑定邮箱和手机立即绑定

Python中的范围索引

Python中的范围索引

jeck猫 2022-07-26 22:02:15
我对 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. 希望这可以帮助。


查看完整回答
反对 回复 2022-07-26
  • 1 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信