按分隔符拆分的函数,删除纯数值和空格或空索引
Function that splits by delimiter, removes numerical only values and whitespaces or empty indices
我正在编写一个按分隔符拆分的函数,删除纯数值和白色 space 或空索引。
但是我似乎无法让它不打印,或删除分隔符分隔的空索引。
假设我的样本是 ABC//DEF/GH//I,我希望它被“/”分割然后删除产生的空 space。
到目前为止,我的输出看起来像这样。
["ABC", "", "DEF", "GH", "", "I"]
我可以包括什么来删除“”位?
def split_lines(lines, delimiter, remove = '[0-9]+$'):
for line in lines:
tokens = line.split(delimiter)
tokens = [re.sub(remove, "", token) for token in tokens]
print(tokens)
试试这个
lst = ["ABC", "", "DEF", "GH", "", "I"]
new_lst = list(filter(lambda e:e,lst))
print(new_lst)
输出
['ABC', 'DEF', 'GH', 'I']
如果还想从列表中删除 ' '
个 space 然后使用这个
lst = ["ABC", " ", "DEF", "GH", " ", "I"]
new_lst = list(filter(lambda e:e.strip(),lst))
print(new_lst)
输出
['ABC', 'DEF', 'GH', 'I']
下面是如何完成此操作的示例。添加了更多输入数据以使事情更清楚:
import re
def split_lines(lines, delimiter, remove='[0-9]+$'):
for line in lines:
tokens = [t for t in line.split(delimiter) if t]
yield [re.sub(remove, '', t) for t in tokens]
for line in split_lines(['ABC//DEF/GH//I', 'ABC1//DEF2/GH3//I4'], '/'):
print(line)
输出:
['ABC', 'DEF', 'GH', 'I']
['ABC', 'DEF', 'GH', 'I']
我正在编写一个按分隔符拆分的函数,删除纯数值和白色 space 或空索引。 但是我似乎无法让它不打印,或删除分隔符分隔的空索引。
假设我的样本是 ABC//DEF/GH//I,我希望它被“/”分割然后删除产生的空 space。 到目前为止,我的输出看起来像这样。
["ABC", "", "DEF", "GH", "", "I"]
我可以包括什么来删除“”位?
def split_lines(lines, delimiter, remove = '[0-9]+$'):
for line in lines:
tokens = line.split(delimiter)
tokens = [re.sub(remove, "", token) for token in tokens]
print(tokens)
试试这个
lst = ["ABC", "", "DEF", "GH", "", "I"]
new_lst = list(filter(lambda e:e,lst))
print(new_lst)
输出
['ABC', 'DEF', 'GH', 'I']
如果还想从列表中删除 ' '
个 space 然后使用这个
lst = ["ABC", " ", "DEF", "GH", " ", "I"]
new_lst = list(filter(lambda e:e.strip(),lst))
print(new_lst)
输出
['ABC', 'DEF', 'GH', 'I']
下面是如何完成此操作的示例。添加了更多输入数据以使事情更清楚:
import re
def split_lines(lines, delimiter, remove='[0-9]+$'):
for line in lines:
tokens = [t for t in line.split(delimiter) if t]
yield [re.sub(remove, '', t) for t in tokens]
for line in split_lines(['ABC//DEF/GH//I', 'ABC1//DEF2/GH3//I4'], '/'):
print(line)
输出:
['ABC', 'DEF', 'GH', 'I']
['ABC', 'DEF', 'GH', 'I']