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

range函数和切片函数的步长值为什么不一样

range函数和切片函数的步长值为什么不一样

慕雪9496982 2018-01-10 14:23:02
print(range(1:10:-1)) 不输出任何值 为什么range不是从序列最后往前输出呢相反切片[1:10:-1] 就从10开始输出呢
查看完整描述

1 回答

已采纳
?
chipinzhen

TA贡献4条经验 获得超2个赞

class range(object)

 |  range(stop) -> range object

 |  range(start, stop[, step]) -> range object

Return an object that produces a sequence of integers from start (inclusive)

 |  to stop (exclusive) by step.  range(i, j) produces i, i+1, i+2, ..., j-1.

 |  start defaults to 0, and stop is omitted!  range(4) produces 0, 1, 2, 3.

 |  These are exactly the valid indices for a list of 4 elements.

 |  When step is given, it specifies the increment (or decrement).

在python环境下输入help(range)可以看到这个对象的内部定义就是从开始到结尾的 

现在你的问题中1比10小 就会不输出


相反 在python队列等可迭代对象的操作中,-1就有意义了

比如listA = [0,1,2,3,4,5,6,7,8,9]

listA[-1] 表示的是从列表尾部最后一个 即为9

listA[-2] 表示倒数第二个 为8

所以前者不输出,后者输出

查看完整回答
1 反对 回复 2018-01-11
  • 1 回答
  • 0 关注
  • 1186 浏览
慕课专栏
更多

添加回答

举报

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