目前我使用此辅助函数删除空条目。
这有内置的方法吗?
def getNonEmptyList(str, splitSym):
lst=str.split(splitSym)
lst1=[]
for entry in lst:
if entry.strip() !='':
lst1.append(entry)
return lst1
答案 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]