Python输入数字字符串尾部空格无法通过strip类方法去除问题求解
问题原因
rstrip()方法不生效通常是以下两种场景导致:
- 待移除的空白不是标准半角空格:全角空格、不间断空格等特殊空白字符,只有调用不带参数的
rstrip()才会被识别移除,如果写为rstrip(' ')仅会匹配删除半角空格,无法处理其他类型空白。 - 空格不在字符串尾部:
rstrip()仅会处理字符串末尾的字符,如果空格位于数字之间的位置,不会被该方法处理,转集合后自然会留存空格。
可行解决方案
方案1:移除字符串中所有位置的空格
适合不需要保留中间空格的场景,直接替换所有空格字符即可:
# 同时处理半角和全角空格 vals_strip = vals_inp.replace(' ', '').replace('\u3000', '') in_set = set(vals_strip)
方案2:仅移除尾部所有类型空白
如果确实只需要处理尾部空白,直接调用无参数的rstrip()即可:
# 自动匹配所有尾部空白:半角/全角空格、制表符、换行符等 vals_strip = vals_inp.rstrip()
方案3:直接筛选提取所有数字
如果最终只需要保留数字字符,最稳妥的方式是直接过滤非数字内容,完全规避空白字符影响:
only_digits = ''.join(c for c in vals_inp if c.isdigit()) in_set = set(only_digits)
内容的提问来源于stack exchange,提问作者WickHerd
相关产品推荐
相关产品推荐

