如何从Python 3中的列表中删除多个白色空间或 t



我想从列表的元素中删除额外的巴尔恩克斯和字符,但是尽管我尝试了split(),strip()和下面的代码,但我无法做到这一点。我该怎么做?

我尝试的是

import re
movie_list=["   The Room"," Boyhood","ttThe 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]

最新更新