我知道已经涵盖了按索引从列表中删除多个不相邻的元素,但是如果索引是负数怎么办?例如,list [len(list) - 1]和list [-1]都引用相同的元素,但它们在存储时是不同的数字,并且如果我们尝试“首先删除较大的索引”策略,则进行不同的排序。
答案 0 :(得分:0)
Python Lists
中没有负面索引,当您尝试使用负索引时,这会发生在Python中...
if (index < 0) {
index = index + len(list) # this is just a pseudo code
}
Python使用逻辑来使用index
来获取值。
>>> l = [0, 1, 2, 3, 4]
>>> l[-1]
4
>>> l[-2]
3
此处应用得很好,因为我们刚尝试了-1 and -2
,如果您超出列表的len
,那么列表长度为5
,假设您尝试{{1}它尝试应用上面的逻辑并检查此l[-6]
,仍然是值为负数且列表中没有5 + (-6) ==> -1
的索引,这会引发-1
异常,如下所示
IndexError
BTW 这是Python适用于>>> l[-6]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
..
list insert
此处if (where < 0) {
where += n;
if (where < 0) # here "where" is index that we trying to insert
where = 0; # "n" is length of the list
}
if (where > n)
where = n;
是尝试where
的{{1}}值。 index
是列表的长度。
您可以通过以下链接获取有关列表的更多信息..