List(范围(2,10,-1))返回一个空列表

时间:2017-05-12 05:44:24

标签: python list range

范围(无论如何)返回范围(无论如何)非常好。 问题是,如果我在范围上调用list(开始,停止," NEGATIVE STEP"),则返回一个空列表。

所以,

>>>range(2,10,-1)
range(2,10,-1)

然而,

>>>list(range(2,10,-1))
[ ]

,而

>>>list(range(2,10,3))
[2,5,8]

你对它为什么以及如何解决这个问题有所了解吗?

3 个答案:

答案 0 :(得分:1)

正确的是: list(range(10,2,-1)) 你从表格10开始,你想要去2,而不是相反。 通过做范围(2,10,-1)你开始形式2你想要步到-1,这是不可能的,因此resolt是一个空的

答案 1 :(得分:0)

第三部分是递增部分,即此处

list(range(2,10,3))

获得输出2,2 + 3,2 + 3 + 3 [2,5,8]  在这种情况下列表(范围(2,10,-1)) 由于范围介于2到10之间,因此不能将其递减-1

所以你必须这样做(范围(10,2,-1)),然后输出为[10,9,8,...... 3]

所以试试这个list(range(10,2,-1))

答案 2 :(得分:0)

你必须了解范围如何运作.... 范围可以采取三个args。范围({开始}:{端}:{步骤})

start = inclusive i.e list(range(0:2))=> returns [0, 1] so start is 
inclusive.

end = exclusive (end-1 is inclusive) i.e list(range(0:2)) => returns [0, (2-
1)]

step = increment value (by default its 1, -1 means decrement) 

当你做列表(范围(2,10,-1)),即它从2(包括)开始直到(10-1),但你说减1(即步长为-1)。所以它没有意义,因为你永远不会通过这种方式达到10。正如@stravos指出的那样

list(range(10,2,-1))

减量只有从高到低才有意义。