python - 替换列表元素中的空格

标签 python regex string replace whitespace

我有一个标签列表:

>>> 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/

相关文章:

python - 复制 3d numpy 数组的最后一列

python - datetime.strptime 奇怪的行为

python - Pyramid (Python): Override default error view

python - 将具有重复字符的字符串拆分为列表

javascript - 如何使用原始javascript正确突出显示单词?

c - 为什么strtof总是输出0.0000?

python - Windows 10 和 pip 升级 - 访问被拒绝

regex - 如何在 Perl 中实现 Unix grep?

c# - 在另一个表单上更改文本框的文本

c - 这个简单的 C 代码中发生了什么?