Python 中如何获取列表的最后一个元素?
Python 获取列表最后一个元素用负索引 my_list[-1],最简洁。注意空列表会抛 IndexError,可用切片 my_list[-1:] 或先判断。
用负索引:my_list[-1]。这是 Python 的惯用法,-1 表示倒数第一个元素。注意空列表会抛 IndexError。
基本用法
my_list = [1, 2, 3, 4, 5]
last = my_list[-1]
print(last) # 5
负索引的规律:-1 是最后一个,-2 是倒数第二个,以此类推。字符串、元组同样适用。
空列表的安全处理
# 方式一:先判断
if my_list:
last = my_list[-1]
# 方式二:切片(空列表返回空列表而非报错)
last = my_list[-1:] # [5];空列表返回 []
反例:用 len() 计算
my_list[len(my_list) - 1] # 能工作但啰嗦,不推荐
负索引就是为这个场景设计的,没必要手动算长度。
常见问题(FAQ)
Q:修改 my_list[-1] 会影响原列表吗?
A:会。my_list[-1] = 99 直接改最后一个元素,负索引同样支持赋值。
Q:如何取最后 N 个元素?
A:用切片 my_list[-3:] 取最后 3 个;不足 3 个时返回全部,不报错。
Q:deque 呢?
A:collections.deque 也支持下标,d[-1] 有效;另外 deque 有 pop()/popleft() 用于弹出两端元素。