我有一个标签列表:
>>> tags_list
['tag1', 'second tag', 'third longer tag']
如何用“+”替换列表中每个元素中的空格?我试图用正则表达式来做到这一点,但每个字符串都保持不变:
for tag in tags_list:
re.sub("\s+" , " ", tag)
我的方法有什么问题?
编辑:
是的,我忘了提,在每个标签的单词之间我们可以有多个空格,而且标签可以以空格开头或结尾,因为它们是用 split(",") 从逗号分隔的字符串解析而来的: (“第一个标签,第二个标签,第三个标签”)。抱歉不够精确。
最佳答案
re.sub()返回一个新字符串,它不会就地修改其参数。
你可能想要:
tags_list = [re.sub(r"\s+", "+", tag) for tag in tags_list]
此外,不要忘记正则表达式之前的 r
,否则您必须将其中的所有反斜杠加倍(即您发布的正则表达式将不起作用)。
编辑:我假设用“+”替换列表中每个元素中的空格
意味着将所有连续的空格折叠成一个+
字符.如果不是,请使用 r"\s"
而不是 r"\s+"
。
关于python - 替换列表元素中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4004349/