如何删除列表中的空列表?(Python)

2024-04-25 23:00:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个函数,它接受一个.txt文件。你知道吗

它要做的第一件事是在''处拆分文件,并将它们添加到一个列表中,从而创建一个列表列表

lst = s.split(',')

我确实得到了一个列表列表,但每两行都有一个空列表['\n']。我需要找到一种方法来摆脱这些空列表,因为它们会把剩下的代码弄脏。你知道吗

有什么简单的方法吗?或者只是我做错了什么?你知道吗

任何帮助都将不胜感激。 谢谢您!你知道吗

样本数据:

1,2,3,4
,3,4,

预期产量:

['1','2','3','4\n']
['','3','4','\n']

电流输出:

['1','2','3','4\n']
['\n']
['','3','4','\n']

使用sshashank124建议后的输出:

['1','2','3','4\n']
[]
['','3','4','\n']

使用Alex Thornton建议后的输出:

['1','2','3','4\n']
[]
['','3','4','\n']

Tags: 文件数据方法函数代码txt列表建议
3条回答

使用strip()(或rstrip())删除新行字符:

lst = s.strip().split(',')

另见:How can I remove (chomp) a newline in Python?

lst = filter(lambda a: len(a)==1 and a[0]!='\n' or len(a)>1, lst)

这将清除空列表[]或只包含\n的列表。 但在将文本拆分为列表之前,最好先清除不需要的字符串。你知道吗

编辑

注意:在代码末尾,必须用包含不需要的字符的列表替换lst。 您还可以尝试用此代码从原始文本文件中删除\n。你知道吗

text_file = text_file.replace('\n', '')

您可以简单地执行以下操作:

lst = [i for i in s.split(',') if i != '\n']

示例

>>> s = 'hello,\n,world,\n,bye,\n,world'

>>> lst = [i for i in s.split(',') if i != '\n']
>>> print lst
['hello', 'world', 'bye', 'world']

相关问题 更多 >