python按索引从列表中删除多个项目,包括否定索引

时间:2015-08-29 20:51:44

标签: python list

我知道已经涵盖了按索引从列表中删除多个不相邻的元素,但是如果索引是负数怎么办?例如,list [len(list) - 1]和list [-1]都引用相同的元素,但它们在存储时是不同的数字,并且如果我们尝试“首先删除较大的索引”策略,则进行不同的排序。

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是列表的长度。

您可以通过以下链接获取有关列表的更多信息..

http://gsb-eng.com/pythonlistinternals/