Python如何通过循环打印嵌套列表中每个子列表的最后一个值
遍历任意长度嵌套列表 提取每个子列表末尾项的实现
问题场景
现有如下嵌套列表存储票务信息:
ticket=[['vvip',2,400],['vip',1,150],['side',2,200]]
如果要打印每个子列表的最后一项,手动指定固定索引的写法如下:
print(ticket[0][2],ticket[1][2],ticket[2][2])
这种硬编码索引的方式只能适配恰好3个子列表、且每个子列表长度固定为3的场景,一旦列表长度变化就会触发索引报错,需要用循环实现通用逻辑,适配任意长度的嵌套列表。
实现方法
Python 原生支持负索引,对任意序列(列表、元组等)使用[-1]即可直接获取最后一个元素,不需要手动计算序列长度,配合循环就能适配任意长度的嵌套列表:
- 直接遍历逐个打印
# 无论ticket里有多少个子列表都能正常运行 for sub_list in ticket: print(sub_list[-1])
如果需要和硬编码写法一样把所有结果输出在同一行,可以修改print的结束符:
for sub_list in ticket: print(sub_list[-1], end=' ')
- 如需先收集所有末尾项再做后续处理,可以用列表推导式一次性提取:
last_values = [item[-1] for item in ticket] # 提取完成后可以按需打印、计算等 print(last_values)
避坑提示:不要硬编码写
[2]取子列表元素,万一后续子列表新增字段(比如给票种加折扣、库存字段),硬编码的索引会取到错误的值,用[-1]取末尾项的写法容错性更强。
内容的提问来源于stack exchange,提问作者JayL
相关产品推荐
相关产品推荐

