【发布时间】:2019-11-30 07:14:19
【问题描述】:
我有以下列表
listA=['farm', '\r\n']
当我编写以下代码删除'\r\n'时
listA = [x.rstrip() for x in listA]
我得到的输出是
['farm', '']
我想要的理想输出是。我如何做到这一点
['farm']
【问题讨论】:
标签: python regex python-3.x string
我有以下列表
listA=['farm', '\r\n']
当我编写以下代码删除'\r\n'时
listA = [x.rstrip() for x in listA]
我得到的输出是
['farm', '']
我想要的理想输出是。我如何做到这一点
['farm']
【问题讨论】:
标签: python regex python-3.x string
listB = [x for x in listA if x.rstrip()]
【讨论】:
您可以使用filter() 和None 作为第一个参数(而不是函数名),它将删除空字符串、空列表、None。但它也删除了整数0 和浮点0.0
listA = ['farm', '']
listB = list(filter(None, listA))
【讨论】:
'\r\n'。
strip() 之后的空字符串 - 请参阅代码中的示例数据 - 结果是相同的。
您可以使用正则表达式检查字符串是否只包含空格字符:
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']
【讨论】: