我想处理一些文件,并将从文件中读取的结果附加到python中的列表中。为了将所有文件读数合并到一个列表中,我使用了extend方法,如下所示:
def read_files(filenames)
reads = list()
for filename in filenames:
file_reads = getReads(filename)
reads.extend(file_reads)
reads = sorted(reads, key= lambda read: read.datetime)
return reads
因为我将列表初始化为空,所以在添加了文件的所有读取后,第一个元素仍然为空,因此尝试在其datetime字段上对读取进行排序时出现错误。如何在旅途中扩展或创建列表?我想到了在循环内进行检查,如果列表为空,则使用读取将其初始化,否则可以简单地对其进行扩展。是否可以不必在for循环中进行检查?我认为这样看起来会更干净。
答案 0 :(得分:3)
您的getReads(filename)
包含一个空元素。您没有显示方法的实现-您可以调试并修复它,以便在扩展(草率)之前不会返回任何空元素或将其删除:
file_reads = getReads(filename)
reads.extend( (i for i in file_reads if i) )