Python 正确初始化列表

Python 正确初始化列表,python,list,python-2.7,initialization,Python,List,Python 2.7,Initialization,我正在逐行读一个文件。读取每一行时,都会将其拆分为一个列表(长度为13),其中包含子列表(任意长度(通常在1到4之间)。这是由我正在读取的文件的数据结构强制执行的 我对每一行执行检查,查看它是否包含所需的数据,如果包含,则希望保存它 它被保存到一个包含13个字段的列表中(称为results),每个字段又包含几个列表,以获得如下结构:results[0]=[line1[0],line2[0],…];results[1]=[line1[1],line2[1],…];…;results[12]=[li

我正在逐行读一个文件。读取每一行时,都会将其拆分为一个列表(长度为13),其中包含子列表(任意长度(通常在1到4之间)。这是由我正在读取的文件的数据结构强制执行的

我对每一行执行检查,查看它是否包含所需的数据,如果包含,则希望保存它

它被保存到一个包含13个字段的列表中(称为
results
),每个字段又包含几个列表,以获得如下结构:
results[0]=[line1[0],line2[0],…];results[1]=[line1[1],line2[1],…];…;results[12]=[line1[12],line2[12],…]
results[i][j]
是长度为1(包含字符串)的列表

我将通过以下方式解决这个问题:

results = []
for i in line:
    results[i].append(line[i])

要做到这一点,尽管列表
结果
需要首先正确初始化,但我无法手动进行初始化,因为我不知道我的第一行是否包含我想事先保存的条目,我不想用随机值初始化它,我以后必须删除它,因为从我的角度来看,删除列表中的第一个条目效率很低知道。我如何解决这个问题?

如果你知道你需要准确地保存13个子列表,只需创建13个空列表即可:

results = [[] for _ in range(13)]
注意:您不能执行以下操作:

results = [[]] * 13
因为这会将一个引用镜像到一个列表13次;对任何条目进行变异都会对所有条目进行变异。请参阅