鱼C论坛

 找回密码
 立即注册
查看: 767|回复: 3

[已解决]Python中遇到的难题 8

[复制链接]
发表于 2020-4-1 18:37:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def myrev(data):
    #这里range 生成了 data的倒序索引
    #注意 ,range的结束位置是不包含的

    for index in range(len(data)-1,-1,-1):
        yield data[index]


为什么for语句会形成 data的倒序索引的呢   结束位置不包含有是什么意思的呢
最佳答案
2020-4-1 20:33:54
range里面的参数是这样的
range(start,stop,step)
他的取值范围是[start,stop)
注意这是一个半闭合结构,start值会取,stop值不会取
step控制每次的步长
回到你的题目
for index in range(len(data)-1,-1,-1):
他是从data的索引为len(data)-1开始到-1(但不取,取到0结束),按-1的步长来步进
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-1 18:41:33 | 显示全部楼层
1,因为步长为-1,也就是从后往前。
2,因为有0的存在,要给它留个位置,
所以不包含结尾
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-1 18:59:08 | 显示全部楼层
1. 因为步长为 -1,而且结束位置为 -1,表示从后往前。

2. 举个例子,如果 stop 为 0 则不会迭代出 0,只会迭代出 1 。因为要保留 0,所以将 stop 设置为 -1 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-1 20:33:54 | 显示全部楼层    本楼为最佳答案   
range里面的参数是这样的
range(start,stop,step)
他的取值范围是[start,stop)
注意这是一个半闭合结构,start值会取,stop值不会取
step控制每次的步长
回到你的题目
for index in range(len(data)-1,-1,-1):
他是从data的索引为len(data)-1开始到-1(但不取,取到0结束),按-1的步长来步进
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 19:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表