社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python中的范围索引

agnostic starfish • 5 年前 • 922 次点击  

我对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
 
922 次点击  
文章 [ 1 ]  |  最新文章 5 年前
OakenDuck
Reply   •   1 楼
OakenDuck    5 年前

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

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、 乙,甲