如何去除列表中字符串的空格
我想要去掉列表中字符串的空格,像下面这样:
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']