我有以下列表
listA=['farm', '\r\n']
当我编写以下代码以删除'\ r \ n'
listA = [x.rstrip() for x in listA]
我得到的输出是
['farm', '']
我想要的理想输出是。我该怎么做
['farm']
答案 0 :(得分:3)
listB = [x for x in listA if x.rstrip()]
答案 1 :(得分:1)
您可以将filter()
与None
用作第一个参数(而不是函数名称),它将删除空字符串,空列表None
。但它也会删除整数0
和浮点数0.0
listA = ['farm', '']
listB = list(filter(None, listA))
答案 2 :(得分:1)
您可以使用正则表达式检查字符串是否仅包含空格字符:
import re
listA = ['a ', '\r\n', '']
listB = [i.rstrip() for i in listA if i and not re.match(r'\s+', i)]
print(listB)
# ['a']