Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 负面列表索引?_Python_List - Fatal编程技术网

Python 负面列表索引?

Python 负面列表索引?,python,list,Python,List,可能重复: 我试图理解以下代码: # node list n = [] for i in xrange(1, numnodes + 1): tmp = session.newobject(); n.append(tmp) link(n[0], n[-1]) 具体来说,我不明白索引-1指的是什么。如果索引0指的是第一个元素,那么-1指的是什么?负数表示从右边而不是左边计数。因此,list[-1]指的是最后一个元素,list[-2]指的是倒数第二个元素,依此类推。列表索引-x表示

可能重复:

我试图理解以下代码:

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

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

负数表示从右边而不是左边计数。因此,
list[-1]
指的是最后一个元素,
list[-2]
指的是倒数第二个元素,依此类推。

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


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

我认为这个问题最终涵盖了我认为正确的相同基础。。谢谢但是,有一个警告:如果尝试切片表示法,行为会略有不同。如果在这种情况下使用-1,它将从最后一个元素返回一个元素。>>>a=[1,2,3,4,5]>>a[-1]5>>>a[:-1][1,2,3,4]@这不是正常的行为吗?如果我说
a[4]
,它将返回5,但是
a[:4]
返回[1,2,3,4]@大约,这完全是因为切片表示法排除了在冒号后面指定索引的元素<代码>-1仍然引用列表中的最后一个值。虽然并非所有语言都能遵循此设计,但为True。在C语言中,
n[-1]
字面意思是
n[0]
之前的元素,如果n指向一个数组,则该元素就可以了,即使它通常是一个bug。[in D]是一个关于本地语言(包括右表示法)中的内存安全切片的有趣尝试。Python直接从Perl获得了此功能:。据我所知,Larry自己为Perl提出了此功能,但他可能是从其他地方获得的。