109

我正在尝试理解以下代码:

# node list
n = []
for i in xrange(1, numnodes + 1):
    tmp = session.newobject();
    n.append(tmp)
link(n[0], n[-1])

具体来说,我不明白索引-1指的是什么。如果索引0指的是第一个元素,那么-1指的是什么?

4

2 回答 2

201

负数意味着你从右边而不是左边数。所以,list[-1]指的是最后一个元素,list[-2]是倒数第二个,以此类推。

于 2012-07-06T18:43:40.807 回答
13

-x 的列表索引表示列表末尾的第 x 项,因此n[-1]表示列表中的最后一项n。任何好的 Python 教程都应该告诉你这一点。

这是一个不寻常的约定,除了 Python 之外只有少数其他语言采用,但它非常有用;在任何其他语言中,您都会花费大量时间n[n.length-1]来访问列表的最后一项。

于 2012-07-06T18:43:52.363 回答