【发布时间】:2011-12-14 22:41:30
【问题描述】:
假设我有以下列表:
list1 = [1, 2, 33, 51]
^
|
indices 0 1 2 3
如何获取该列表的最后一个索引,在本例中为 3?
【问题讨论】:
-
这能回答你的问题吗? Getting the last element of a list
假设我有以下列表:
list1 = [1, 2, 33, 51]
^
|
indices 0 1 2 3
如何获取该列表的最后一个索引,在本例中为 3?
【问题讨论】:
获取列表最后一个索引的最佳和快速方法是使用-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
在这种情况下,输入是列表,输出是一个整数,它是最后一个索引号。
【讨论】:
list1[-1]
将返回列表的最后一个索引。
如果在数组索引之前使用减号,它将从末尾开始向下计数。 list1[-2] 将返回倒数第二个索引等。
重要的是,-0 只返回列表的“第一个”(第 0 个)索引,因为 -0 和 0 是相同的数字,
【讨论】:
以上所有答案都是正确的,但是
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 开始的
【讨论】:
我猜你想要
last_index = len(list1) - 1
这会将 3 存储在 last_index。
【讨论】:
您可以使用列表长度。最后一个索引将是列表的长度减一。
len(list1)-1 == 3
【讨论】:
你是说len(list1)-1吗?
如果您正在寻找其他方法,您可以尝试list1.index(list1[-1]),但我不推荐这种方法。您必须确保该列表不包含重复项。
【讨论】:
len(list1)-1一起去的,然后想到了一种更Pythonic的方式,想象着那个,但后来来到这里,感谢你的回答,你刚刚救了我严重的头痛
a = ['1', '2', '3', '4']
print len(a) - 1
3
【讨论】:
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
【讨论】: