如何从列表中删除空格

时间:2014-09-08 11:29:32

标签: python string python-2.7 whitespace

我想删除列表字符串的空格,如下所示

original = ['16', '0000D1AE18', '1', '1', '1', 'S O S .jpg', '0']
删除空白后

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

3 个答案:

答案 0 :(得分:6)

对列表解析中的每个元素使用str.translate()

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

此处None表示不会将字符替换为其他字符,而' '表示完全删除空格。这会生成一个 new 列表来替换原始列表。

以上只删除空格。要删除所有空格(换行符,制表符,供稿等),只需展开应删除的字符

[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']

答案 1 :(得分:1)

如果您要删除任何空格(例如空格标签 CR 新线),请使用这样:

import re

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

如果您只需要替换常规空格,请使用已建议的解决方案

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

答案 2 :(得分:0)

您可以使用

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