Python中range(10)[2:6][2]语法及求值结果解析求助
关于
range(10)[2:6][2]的解析与疑问解答 先纠正你的核心误解
range(10)绝对不等于range(0,10,0):Python的range函数中step参数不能为0,否则会直接抛出ValueError: range() arg 3 must not be zero错误。range(10)是range(start, stop, step)的简写形式,等价于range(0, 10, 1)——默认start为0,step为1,stop为传入的参数10。
逐步骤解析表达式求值过程
第一步:
range(10)生成的序列
生成从0开始、步长1、到10(不包含10)的整数序列:0, 1, 2, 3, 4, 5, 6, 7, 8, 9第二步:
[2:6]切片操作
Python切片语法[起始索引:结束索引]遵循「包含起始,不包含结束」规则,所以range(10)[2:6]会取出原序列中索引2到5的元素,得到新序列:2, 3, 4, 5第三步:
[2]索引取值
切片后的序列索引重新从0开始计数,取索引2的元素:- 索引0:2
- 索引1:3
- 索引2:4
最终结果自然是4
内容的提问来源于stack exchange,提问作者Thomas Mathew David Loeff
相关产品推荐
相关产品推荐

