我想删除列表字符串的空格,如下所示
original = ['16', '0000D1AE18', '1', '1', '1', 'S O S .jpg', '0']
删除空白后
['16', '0000D1AE18', '1', '1', '1', 'SOS.jpg', '0']
答案 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)