Python 如何删除字符串列表中的所有空白元素?
我有一个字符串列表,Python 如何删除字符串列表中的所有空白元素?,python,python-3.x,Python,Python 3.x,我有一个字符串列表,text=['He','was','siting','next','to me'] 我想从列表中删除空白元素' 我尝试过使用filter方法,但它只删除空元素 list(filter(None, text)) 我希望名单是这样的 ['He', 'was' ,'sitting','next','to me'] 现在,正如您正确指出的,list(filter(None,text))正在删除空字符串,而不是带有空格的字符串 要删除带有空格的字符串,可以从列表的每个元素中删除空格
text=['He','was','siting','next','to me']
我想从列表中删除空白元素'
我尝试过使用filter方法,但它只删除空元素
list(filter(None, text))
我希望名单是这样的
['He', 'was' ,'sitting','next','to me']
现在,正如您正确指出的,
list(filter(None,text))
正在删除空字符串,而不是带有空格的字符串
要删除带有空格的字符串,可以从列表的每个元素中删除空格,然后进行比较,然后创建一个带有非空字符串的新列表
text= ['He', 'was', '' ,'sitting', ' ', 'next', ' ', 'to me']
print([item for item in text if item.strip()])
#Or using filter
#print(list(filter(lambda item:item.strip(), text)))
输出将是
['He', 'was', 'sitting', 'next', 'to me']
几乎正确,您只是使用了一个错误的谓词:
list(filter(str.strip, text))
#['He', 'was', 'sitting', 'next', 'to me']
或者我们可以更快地做到这一点
text= ['He', 'was', '' ,'sitting', ' ', 'next', ' ', 'to me']
print(' '.join(text).split()) # this will remove both whitespace element + whitespaces
OUTPUT:
['He', 'was', 'sitting', 'next', 'to', 'me']