我写了一个带有.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']
答案 0 :(得分:1)
lst = s.strip().split(',')
答案 1 :(得分:0)
你可以简单地这样做:
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']
答案 2 :(得分:0)
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', '')
答案 3 :(得分:0)
如果您的示例数据在两个填充行之间没有空行,那么在我看来,您在读取文本文件时遇到了行结尾问题。如果您发布文本文件中的阅读方式,您可以获得解决问题的答案,然后才能找到要删除的空列表。
也就是说,如果lst
确实只有[\n]
作为每个其他元素,您可以按以下方式跳过它们:
lst = s.strip().split(',')[::2]
(注意我已经合并了之前答案中提到的strip
以删除换行符。)