如何在Python中移除列表元素内的字符间空格?
移除Python列表元素中字母间单个空格的方法
针对你的需求——只移除列表元素里字母之间的单个空格,同时保留单词间的正常空格、符号前后空格以及字符串首尾空格,最简洁高效的方法是用正则表达式配合列表推导式批量处理:
代码实现
import re my_list = [' LCD | Autorotation', ' S o u n d ', ' Power | No Power | AC Adapter Not Powering System', ' Motherboard', ' LCD | Lines on Display', ' W i r e l e s s ', ' D N S F a i l u r e', ' Power | Battery | Swollen'] # 批量处理列表元素 processed_list = [re.sub(r'(?<=\w) (?=\w)', '', item) for item in my_list] # 验证输出结果 for elem in processed_list: print(repr(elem))
运行结果
' LCD | Autorotation' ' Sound ' ' Power | No Power | AC Adapter Not Powering System' ' Motherboard' ' LCD | Lines on Display' ' Wireless ' ' DNS Failure' ' Power | Battery | Swollen'
原理说明
正则表达式 (?<=\w) (?=\w) 的作用非常精准:
(?<=\w):正向回溯断言,确保空格前是单词字符(字母、数字、下划线)(?=\w):正向前瞻断言,确保空格后是单词字符
它只会匹配单个单词字符之间的单个空格,完全不会干扰单词间的多空格、|前后的空格,也不会改动字符串首尾的空格。如果需要严格只处理字母(排除数字、下划线),可以把正则改成 (?<=[a-zA-Z]) (?=[a-zA-Z])。
内容的提问来源于stack exchange,提问作者The Humble Coder
相关产品推荐
相关产品推荐

