【发布时间】:2015-08-29 20:51:44
【问题描述】:
我知道按索引从列表中删除多个不相邻的元素已经介绍过了,但是如果索引为负数怎么办?例如,list[len(list) - 1] 和 list[-1] 都指向同一个元素,但它们在存储时是不同的数字,如果我们尝试“先删除较大的索引”策略,它们的排序方式也会不同。
【问题讨论】:
-
您能否添加一些代码来解释您的意思?列表元素怎么可能有负索引?第一个元素由
[0]索引,最后一个元素由[-1]索引,等于[len(l)-1]。 -
@albert Python 列表中没有
-1索引,这就是它在获取值时应用的所有逻辑,请在下面查看我的答案。 -
如果所有指数都是负数,则策略相同,您只需反转逻辑即可。如果混合了正面和负面,则需要先将它们归一化。
-
我问的原因是因为我试图避免处理 len(list) 因为我实际上只处理列表的开头和结尾部分,即 i = 1, 2 , 3, -2, -1。这些值存储为“键”以记住元素的位置,如果我想稍后删除它们
-
如果你确定不会有歧义,你可以在你的逻辑中使用正数和负数。将负值视为大于正值。