在字符串拆分期间删除空条目

时间:2017-10-23 04:25:02

标签: python python-3.x

目前我使用此辅助函数删除空条目。

这有内置的方法吗?

def getNonEmptyList(str, splitSym):
    lst=str.split(splitSym)

    lst1=[]
    for entry in lst:
        if entry.strip() !='':
            lst1.append(entry)

    return lst1

5 个答案:

答案 0 :(得分:2)

str.split(sep=None, maxsplit=-1)

  

如果未指定sep或为None,则应用不同的拆分算法:连续空格的运行被视为单个分隔符,如果字符串具有前导或尾随,则结果将在开头或结尾处不包含空字符串空格。

例如:

>>> '1 2 3'.split()
['1', '2', '3']
>>> '1 2 3'.split(maxsplit=1)
['1', '2 3']
>>> '   1   2   3   '.split()
['1', '2', '3']

答案 1 :(得分:1)

这种分裂可以通过如下理解来更紧凑地完成:

def getNonEmptyList(str, splitSym):
    return [s for s in str.split(splitSym) if s.strip() != '']

答案 2 :(得分:1)

您可以使用过滤器

def get_non_empty_list(s, delimiter):
    return list(filter(str.strip, s.split(delimiter)))

答案 3 :(得分:0)

您可以使用正则表达式捕获额外的空格。

import re 
split_re = r'\s*{}\s*'.format(splitSym)
return re.split(split_re, string) 

答案 4 :(得分:0)

如果您想用换行符分割文本并删除任何空行,请使用衬线:)

result = [[float(t) for s in sublist for t in s.split(', ')] for sublist in nested]
相关问题