首页 > 解决方案 > Python过滤列表,删除\'n'和空字符串

问题描述

我有一个列表,我尝试删除空字符串和 '\n'

re = ['\n', '\n', '0 / 6\n', '1 / 6\n', '2 / 6\n', '3 / 6\n', '4 / 6\n', '5 / 6\n', '6 / 6\n', '\n', 'mobile\n']

resul = map(str.rstrip, re)
print(list(resul))

str_list = filter(None, list(resul))
print(list(str_list))

输出 :

['', '', '0 / 6', '1 / 6', '2 / 6', '3 / 6', '4 / 6', '5 / 6', '6 / 6', '', 'mobile']
[]

所以,第一个输出是正确的,我成功删除了\n,但是当我想删除空的 strinf 之后,列表是空的。

标签: python-3.xlistdictionaryfilter

解决方案


从列表中取出所有非\n值并\n通过列表理解删除:

re = ['\n', '\n', '0 / 6\n', '1 / 6\n', '2 / 6\n', '3 / 6\n', '4 / 6\n', '5 / 6\n', '6 / 6\n', '\n', 'mobile\n']

print([x.replace('\n', '') for x in re if x != '\n'])
# ['0 / 6', '1 / 6', '2 / 6', '3 / 6', '4 / 6', '5 / 6', '6 / 6', 'mobile']

推荐阅读