我想了解发电机和所遇到下面的代码:发电机在Python查询
def reverse(data):
for index in range(len(data)-1, -1, -1):
yield data[index]
for s in reverse([1,2,3]):
print s
我明白,我们在指数2
,减量在-1
开始通过1
和结束。我没有得到的是,事实上,我认为停止点-1
应该参考"3"
,但它似乎指的是"1"
在这里? :
3
2
1
感谢
在假设之前检查'range(len(data)-1,-1,-1)'的输出关于停车点的任何事情(特别是因为证据点违背你的假设) – njzk2 2014-10-01 22:13:48
'range'实际上在上限之前停止。假设它的行为方式是确保'我在范围内(3)'将按照大多数人所期望的那样迭代3次,'i'取值为'[0,1,2]'。在你的情况下,'range(2,-1,-1)'输出'[2,1,0]',这对应于你所看到的输出的索引。 – 2014-10-01 22:16:05