如何从python 3的列表项中删除多个空格或\ t?
问题描述:
我想从我的列表中删除额外的balnks和字符,但我无法完成,虽然我试过split(),strip()和下面的代码。我该怎么做?如何从python 3的列表项中删除多个空格或 t?
我试过的是;
import re
movie_list=[" The Room"," Boyhood","\t\tThe Help"]
for i in movie_list:
i=re.sub('[ \t]+' , ' ',i)
print(movie_list)
答
如果你想要去除的开头和结尾的空格:
[m.strip() for m in movie_list]
它提供:
['The Room', 'Boyhood', 'The Help']
如果你想删除重复的空格:
import re
[re.sub(r'[ \t]+', '', m) for m in movie_list]
你也可以结合两者:
import re
[re.sub(r'[ \t]+', '', m.strip()) for m in movie_list]
在你的榜样,要注意一个事实,即i=re.sub('[ \t]+' , ' ',i)
重新定义变量i
但不修改您的列表。要实际进行更改列表,您可以
for index, value in enumerate(movie_list):
movie_list[index] = some_function(value)
或重新定义movie_list
:
movie_list = [some_function(m) for m in movie_list]
所有你做在'for'循环重新绑定变量'i';你没有改变名单。为此,您需要为列表编制索引。您可以使用['enumerate'](https://docs.python.org/3.6/library/functions.html#enumerate)获取索引(以及列表成员)。 – glibdud
@glibdud是的,你是对的。它现在工作!谢谢.. – Beyza