如何用Python提取列表中字符串最后一个下划线后的整数?
提取列表中字符串最后一个下划线后的整数
输入输出示例
输入
lst = ['table_name_student_1', 'table_name_student_20', 'table_name_student_300', 'table_name_student_4500']
期望输出
[1, 20, 300, 4500]
你的尝试(修正版)
你已经能处理单个字符串,但原代码里split('_')返回的是分割后的列表,要取最后一个元素才能得到数字部分:
table_name = 'table_name_student_12345' id_str = table_name.split('_')[-1] print(id_str) # 输出: 12345
批量处理列表的方法
要把这个逻辑应用到整个列表,有两种简单高效的方式:
方式1:列表推导式
遍历列表里的每个字符串,逐个处理后转成整数:
lst = ['table_name_student_1', 'table_name_student_20', 'table_name_student_300', 'table_name_student_4500'] result = [int(s.split('_')[-1]) for s in lst] print(result) # 输出: [1, 20, 300, 4500]
方式2:map函数配合lambda
用map()批量处理每个元素,再转成列表:
lst = ['table_name_student_1', 'table_name_student_20', 'table_name_student_300', 'table_name_student_4500'] result = list(map(lambda s: int(s.split('_')[-1]), lst)) print(result) # 输出: [1, 20, 300, 4500]
关键逻辑说明
split('_')[-1]:把字符串按下划线拆分后取最后一段,也就是目标数字的字符串形式int():将字符串类型的数字转换成整数,保证结果是数字列表而非字符串列表
内容的提问来源于stack exchange,提问作者Sara
相关产品推荐
相关产品推荐

