为什么我们不能得到特定负数的范围

时间:2016-06-19 15:33:49

标签: python range

for i in range(3):
    print (i)

我们将从0到2获得计数。

但我想知道一个特定负数的范围。例如-3。 我从朋友那里得知,由于索引负数不能存储值。我无法理解这个概念,因为我的编程语言很差。

1 个答案:

答案 0 :(得分:4)

范围不是指数,可以很好地产生负数:

>>> list(range(-3, 0))
[-3, -2, -1]

请注意我必须同时指定开始值和结束值,否则它将从0开始,默认方向是向上计算

如果您需要倒数到-3,请告诉它倒计时:

>>> list(range(0, -3, -1))
[0, -1, -2]

即便如此,使用负数编制索引也可以正常工作;它们从最后开始计算并转换为内部的绝对索引,仍允许存储:

>>> a = ['foo', 'bar', 'baz']
>>> a[-2] = 'spam'
>>> a
['foo', 'spam', 'baz']