You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python列表字符串处理:如何仅移除末尾的尾随1?

解决Python列表字符串移除末尾单个尾随1的问题

原代码的问题

你写的嵌套列表推导完全没必要(stripped_list是一维列表,不需要两层遍历),而且replace('1', '')会替换字符串中所有的1,不管位置,所以AV11里的两个1都会被去掉,得到AV,不符合只移除末尾单个1的需求。

正确实现方法

方法1:判断结尾字符并切片

直接检查字符串是否以1结尾,是的话截取除最后一个字符外的部分,否则保留原字符串:

stripped_list = ['WLH1', 'GWJ1', 'AV11', 'UBN1']
stripped_list2 = [s[:-1] if s.endswith('1') else s for s in stripped_list]
# 结果:['WLH', 'GWJ', 'AV1', 'UBN']

方法2:正则表达式匹配末尾单个1

用正则匹配字符串末尾的1,只替换这一个1:

import re

stripped_list = ['WLH1', 'GWJ1', 'AV11', 'UBN1']
stripped_list2 = [re.sub(r'1$', '', s) for s in stripped_list]
# 结果:['WLH', 'GWJ', 'AV1', 'UBN']

说明

两种方法都能精准只移除每个字符串末尾的单个1,不会影响字符串中间的1,完美解决AV11需要保留为AV1的需求。

内容的提问来源于stack exchange,提问作者user10945224

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 19:45:39