Python如何批量移除列表中每个元素首尾的字符
实现方法
直接用Python原生的字符串切片搭配列表推导式就能实现,逻辑非常简洁。
核心原理
Python字符串支持按索引切片,规则如下:
- 索引从0开始计数,
s[n:]表示跳过前n个字符,从索引n的位置开始截取到字符串末尾 - 负数索引代表从末尾倒计数,
s[:-m]表示从字符串开头截取到倒数第m+1个位置,自动丢弃末尾m个字符 - 组合写法
s[2:-1]刚好满足「移除前2个字符、移除最后1个字符」的截取需求
你的示例里最终结果是整数类型的1、2、3,截取得到的字符串片段额外做一次int()类型转换即可。
注意:不要用
list作为变量名,会覆盖Python内置的列表类,容易触发难以排查的bug。
代码实现
简洁写法(列表推导式)
origin_list = ["ab1c", "ef2g", "hi3j"] result = [int(item[2:-1]) for item in origin_list] print(result) # 运行输出:[1, 2, 3]
易读写法(普通for循环)
如果刚接触Python不习惯列表推导式,用普通循环逐元素处理逻辑完全一致:
origin_list = ["ab1c", "ef2g", "hi3j"] result = [] for item in origin_list: # 截取去掉前后冗余字符的片段 core_part = item[2:-1] # 转为整数后存入结果列表 result.append(int(core_part))
内容的提问来源于stack exchange,提问作者Arvo Ju
相关产品推荐
相关产品推荐

