如何去除列表中字符串的空格

0 投票
3 回答
3136 浏览
提问于 2025-04-20 10:43

我想要去掉列表中字符串的空格,像下面这样:

original = ['16', '0000D1AE18', '1', '1', '1', 'S O S .jpg', '0']

去掉空格后是这样的:

['16', '0000D1AE18', '1', '1', '1', 'SOS.jpg', '0']

3 个回答

0

你可以使用

k=[]
for i in original :
    j = i.replace(' ','')
    k.append(j)
1

如果你想去掉任何空白字符(比如空格制表符回车换行),可以使用这个:

import re

without_spaces = [re.sub(r'\s+', '', item) for item in original]

如果你只需要替换普通的空格,可以使用之前提到的解决方案

without_spaces = [item.replace(' ', '') for item in original]
6

在列表推导式中对每个元素使用 str.translate() 方法:

[v.translate(None, ' ') for v in original]

这里的 None 表示 不把字符替换成其他字符,而 ' ' 则表示 完全去掉空格。这样会生成一个 新的 列表来替换原来的列表。

上面的做法只去掉了 空格。如果想去掉所有的空白字符(比如换行、制表符、回车等),只需要扩展一下要去掉的字符即可。

[v.translate(None, ' \t\r\n\f\x0a') for v in original]

str.translate() 是从文本中去掉字符的最快方法。

示例:

>>> original = ['16', '0000D1AE18', '1', '1', '1', 'S O S .jpg', '0']
>>> [v.translate(None, ' \t\r\n\f\x0a') for v in original]
['16', '0000D1AE18', '1', '1', '1', 'SOS.jpg', '0']

撰写回答