如何获取列表的最后一个索引?

Posted

技术标签:

【中文标题】如何获取列表的最后一个索引?【英文标题】:How to obtain the last index of a list? 【发布时间】:2011-12-14 22:41:30 【问题描述】:

假设我有以下列表:

list1 = [1, 2, 33, 51]
                    ^
                    |
indices  0  1   2   3

如何获取该列表的最后一个索引,在本例中为 3?

【问题讨论】:

这能回答你的问题吗? Getting the last element of a list 【参考方案1】:

获取列表最后一个索引的最佳和快速方法是使用-1 作为索引数, 例如:

my_list = [0, 1, 'test', 2, 'hi']
print(my_list[-1])

输出为:'hi'

Index -1 显示最后一个索引或末尾的第一个索引。

但是如果只想获取最后一个索引,可以通过这个函数获取:

def last_index(input_list:list) -> int:
    return len(input_list) - 1

在这种情况下,输入是列表,输出是一个整数,它是最后一个索引号。

【讨论】:

它对我有帮助!原来我在找这个xD【参考方案2】:
list1[-1]

将返回列表的最后一个索引。

如果在数组索引之前使用减号,它将从末尾开始向下计数。 list1[-2] 将返回倒数第二个索引等。

重要的是,-0 只返回列表的“第一个”(第 0 个)索引,因为 -0 和 0 是相同的数字,

【讨论】:

这将返回最后一个元素,而不是最后一个索引,因此它不会回答问题。【参考方案3】:

以上所有答案都是正确的,但是

a = [];
len(list1) - 1 # where 0 - 1 = -1

更准确地说

a = [];
index = len(a) - 1 if a else None;

if index == None : raise Exception("Empty Array")

因为数组是从 0 开始的

【讨论】:

这是超级答案。这是编写高质量代码的方法。 @Willysatrionugroho 这也可能是无用的开销。取决于您的期望和代码运行的条件。【参考方案4】:

我猜你想要

last_index = len(list1) - 1 

这会将 3 存储在 last_index

【讨论】:

【参考方案5】:

您可以使用列表长度。最后一个索引将是列表的长度减一。

len(list1)-1 == 3

【讨论】:

这会返回一个布尔值 @AnthonyPerot 你是对的,这有点令人困惑。我认为这与其说是代码,不如说是他说他们是平等的。【参考方案6】:

你是说len(list1)-1吗?

如果您正在寻找其他方法,您可以尝试list1.index(list1[-1]),但我不推荐这种方法。您必须确保该列表不包含重复项。

【讨论】:

哦,伙计太聪明了,一开始我是和len(list1)-1一起去的,然后想到了一种更Pythonic的方式,想象着那个,但后来来到这里,感谢你的回答,你刚刚救了我严重的头痛【参考方案7】:
a = ['1', '2', '3', '4']
print len(a) - 1
3

【讨论】:

您应该始终在答案中添加对您提供的代码的解释。 @SaschaWolf 特别是当代码包含的不仅仅是答案!【参考方案8】:

len(list1)-1 绝对是要走的路,但如果您绝对需要一个具有返回最后一个索引的函数的 list,您可以创建一个继承自 list 的类。

class MyList(list):
    def last_index(self):
        return len(self)-1


>>> l=MyList([1, 2, 33, 51])
>>> l.last_index()
3

【讨论】:

以上是关于如何获取列表的最后一个索引?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Solr 中获取最后一个索引记录?

如何获取 uicollectionview 的最后一个索引路径?

如何从复选框列表中获取最新的选定值?

如何在 SwiftUI 列表中获取行索引?

如何在 RN 平面列表中获取当前可见的索引

如何在 Qt 中获取选定的列表项索引