【发布时间】:2016-02-01 19:18:54
【问题描述】:
我正在将 .csv 文件读取到一个列表中,它会附加一个空列表,我正在使用下面的代码来执行此操作。
with open('Scores.csv', 'r') as scores:
reader = csv.reader(scores)
tscores = [[str(e) for e in r] for r in reader]
它正确地创建一个嵌套列表的列表,但在读入的每一行之后附加一个空列表,如下所示:
[[score1, name1], [], [score2, name2], []]
我相信它将 \n 读取为空字符串,这就是我得到它的原因,所以我尝试使用以下方法删除空列表:
tscores = [tscores.remove(x) for x in tscores if x]
它确实删除了空的嵌套列表,但它将所有其他包含数据的嵌套列表设置为None,即[None, None]。我修改为:
tscores = [tscores.remove(x) for x in tscores if []]
彻底清除所有嵌套列表。
如何在不附加空列表的情况下读取具有相同输出(嵌套列表列表)的文件,或者如何在读入后删除所有空列表?
【问题讨论】:
标签: python list nested-lists python-3.5