正确初始化列表

时间:2016-01-27 16:59:53

标签: python list python-2.7 initialization

我正在逐行阅读文件。读取每一行,使其分成一个包含子列表(长度为1到4)的列表(长度为13)。这是我正在阅读的文件的数据结构所强制要求的。 / p>

我对每一行进行检查以查看它是否包含所需数据,然后如果有则保存。

它被保存到一个包含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])

要做到这一点虽然列表results需要首先正确初始化,我不能手动执行,因为我不知道我的第一行是否包含我想保存先验的条目而且我不喜欢我想用随机值初始化它,我必须在以后删除它,因为删除列表中的第一个条目是非常低效的,据我所知。我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:3)

如果您知道需要保留13个子列表,只需创建13个空列表:

results = [[] for _ in range(13)]

注意:您不能这样做:

results = [[]] * 13

因为它将镜像对单个列表的引用13次;改变任何条目都会改变所有条目。请参阅here