python中的否定列表索引

时间:2012-07-20 23:30:39

标签: python

Python noob在这里。给定列表中的索引i,是否有任何内置方法可以找到它的负索引。目前我正在使用:

neg_index = i - len(list)

3 个答案:

答案 0 :(得分:4)

您提出的解决方案可以直接从负索引的定义派生:python隐式添加len(list)以传递负索引。所以,没关系。

但是你需要找到负面指数有点奇怪。我认为这项任务并不典型。

答案 1 :(得分:1)

您的解决方案是正确的,没有更好的方法可以做到这一点。

答案 2 :(得分:0)

如果你不喜欢它的样子,你可以为你做一个功能。

如果您对功能了解不多,可以找到关于它们的教程here

def negIndex(array, index):
    return index - len(array)

然后你可以像这样使用它

array = [1,2,3,4,5]
index=2
print index #2
print array[index] #3

newIndex = negIndex(array, index)
print newIndex #-3
print array[newIndex] #3

或者如果您不想更具技术性,可以使用此功能作为属性创建一个类。 在这个例子中,我们继承了类'list',所以negIndexClass包含列表类的所有内容,加上negIndex函数

class negIndexClass(list):
    def negIndex(self, index):
        return index - len(self)

所以这将使用这样:

array = negIndexClass( [1,2,3,4,5] )
index=2
print index #2
print array[index] #3

newIndex = array.negIndex(index)
print newIndex #-3
print array[newIndex] #3