替换列表元素中的空格

mas*_*don 1 python regex string whitespace replace

我有一个标签列表:

>>> tags_list
['tag1', 'second tag', 'third longer tag']
Run Code Online (Sandbox Code Playgroud)

如何用"+"替换列表中每个元素中的空格?我试图用正则表达式做这个,但每个字符串保持不变:

for tag in tags_list:
    re.sub("\s+" , " ", tag)
Run Code Online (Sandbox Code Playgroud)

我的做法有什么问题?

编辑:

是的,我忘了提到,在每个标签中的单词之间我们可以有多个空格以及标签可以以空格开头或结尾,因为它们是用逗号分隔的字符串解析的,带有split(","):("First标签,第二个标签,第三个标签").抱歉没有足够精确.

Fré*_*idi 6

re.sub()返回一个新字符串,它不会就地修改其参数.

你可能想要:

tags_list = [re.sub(r"\s+", "+", tag) for tag in tags_list]
Run Code Online (Sandbox Code Playgroud)

另外,不要忘记r正则表达式之前或者你必须加倍内部的所有反斜杠(即你发布的正则表达式不起作用).

编辑:我假设replace whitespaces within each element of the list with "+"意味着将所有连续的空格折叠成一个+字符.如果没有,请使用r"\s"而不是r"\s+".