Python如何从字符串列表中提取无多余空格的单词子串
原有代码失效原因
你写的正则(?m)^\s+仅匹配字符串开头的空白字符,既没有处理字符串尾部的空白,也没有将单个元素内包含的多个独立单词拆分,因此无法达到预期效果。
最优实现方案
不需要引入正则模块,Python 内置的字符串split()方法在不传参数的情况下,默认会按任意长度的空白字符分割字符串,同时自动忽略字符串首尾的空白,完全适配你的需求,只要遍历每个元素拆分后合并到结果列表即可:
l1 = ['apples', ' bananas' , ' coconuts', ' dates figs guavas', 'lemons ', 'mangoes '] l2 = [] for item in l1: words = item.split() l2.extend(words)
也可以用列表推导式实现一行代码完成处理:
l2 = [word for item in l1 for word in item.split()]
运行后得到的l2就是你需要的结果:['apples', 'bananas', 'coconuts', 'dates', 'figs', 'guavas', 'lemons', 'mangoes']
内容的提问来源于stack exchange,提问作者Zizzipupp
相关产品推荐
相关产品推荐

