如何获取列表的最后一个元素?

2751 投票
26 回答
3168062 浏览
提问于 2025-04-15 11:56

26 个回答

134

你还可以这样做:

last_elem = alist.pop()

这要看你想对你的列表做什么,因为 pop() 这个方法会删除列表中的最后一个元素。

327

如果你的 str()list() 对象可能会变成空的,比如 astr = ''alist = [],那么你可能想用 alist[-1:] 来代替 alist[-1],这样可以保持对象的一致性。

这样做的意义在于:

alist = []
alist[-1]   # will generate an IndexError exception whereas 
alist[-1:]  # will return an empty list
astr = ''
astr[-1]    # will generate an IndexError exception whereas
astr[-1:]   # will return an empty str

这里的区别在于,返回一个空列表或空字符串对象,更像是“最后一个元素”,而不是抛出一个异常。

3936

some_list[-1] 是获取列表最后一个元素的最简便、最符合Python风格的方法。

实际上,你可以用这种语法做更多的事情。some_list[-n] 这个写法可以获取倒数第n个元素。所以,some_list[-1] 是最后一个元素,some_list[-2] 是倒数第二个,以此类推,一直到 some_list[-len(some_list)],这会给你第一个元素。

你也可以用这种方式来设置列表中的元素。例如:

>>> some_list = [1, 2, 3]
>>> some_list[-1] = 5 # Set the last element
>>> some_list[-2] = 3 # Set the second to last element
>>> some_list
[1, 3, 5]

需要注意的是,如果你通过索引获取列表中的元素,而那个元素不存在,就会出现一个 IndexError 错误。这意味着如果 some_list 是空的,some_list[-1] 就会报错,因为空列表是没有最后一个元素的。

撰写回答