否定列表索引?
我试图理解下面的一段代码:
# node list
n = []
for i in xrange(1, numnodes + 1):
tmp = session.newobject();
n.append(tmp)
link(n[0], n[-1])
具体来说,我不明白什么是指数-1
指的是。如果索引0
引用了第一个元素,那么-1
是指什么?
列表索引-x表示从列表末尾开始的第x个项目,因此n[-1]
表示列表n
中的最后一个项目。任何好的Python教程都应该告诉你这一点。
这是一个不寻常的约定,Python以外的其他语言已经采用,但它非常有用;在任何其他语言中,您将花费大量时间编写n[n.length-1]
来访问列表的最后一项。
虽然并非所有语言都能遵循此设计,在C中,'n [-1]'实际上意味着'n [0]之前的元素',如果n指向一个数组 - 即使它更通常是一个错误也没有问题。 [http://dlang.org/d-array-article.html](在D中进行切片)是一种有趣的以母语编写的内存安全切片,包括从右边的符号。 – 2014-09-11 18:15:18
Python直接从Perl获得此功能:https://*.com/questions/15911115/arrays-and-negative-indexes-in-perl。据我所知,Larry自己为Perl提出了这个问题,但他可能从其他地方获得了它。 – 2017-08-30 20:07:55
我认为这个问题最终涵盖了与[Python Primer for Python Slice Notation]相同的基础(http://*.com/questions/509211/good-primer-for-python-slice-notation) – Daenyth 2012-07-06 18:43:04
I认为这是正确的..谢谢! – Dawood 2012-07-06 18:44:04