Py学习  »  Python

Python中的范围索引

agnostic starfish • 4 年前 • 724 次点击  

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

  • 范围(起点、终点、索引依据的金额)

当“要索引的数量”为负数时,您基本上是在向后移动,从末尾到前面。

我的问题是:

  • 当反向运行时,值是否为 没有得到评估?

例如,如果我想反转一个字符串“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"

谢谢你的时间:)

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/54670
 
724 次点击  
文章 [ 1 ]  |  最新文章 4 年前
OakenDuck
Reply   •   1 楼
OakenDuck    4 年前

在第一个例子中发生的是:

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

len(strlst) - 1 =2,所以当您使用它作为for循环的开始索引时,它显然是最后一个字母,因为它被索引为 0, 1, 2 c, b, a .

-1 对于终点,它将在迭代器中减去1 3次后结束( 2, 1, 0 ,到达时结束 -1个

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

每当你投入 0 0个 你的清单,或第一项。会回来的 c, b 而不是 c、 乙,甲