如何获取列表的最后一个索引?
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
【讨论】:
以上是关于如何获取列表的最后一个索引?的主要内容,如果未能解决你的问题,请参考以下文章