python - 正确初始化列表

标签 python list python-2.7 initialization

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

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

它被保存到一个包含 13 个字段的列表(称为 results)中,每个字段又包含多个列表以获得如下结构:results[0] = [line1[0] , 第2行[0], ...];结果[1] = [行1[1],行2[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 次;改变任何条目都会改变所有条目。请参阅this answer for more details .

关于python - 正确初始化列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35043544/

相关文章:

c# - 我的客户列表已填充,但不会显示在服务器端 Blazor 的 Foreach 循环中

python - tf.contrib.learn 快速入门中出现错误,没有名为 load_csv 的属性

python - Mac OS X 上的 libusb - "ValueError: No backend available"

python - 未检测到静态文件 Django 1.10

Python 列表困惑

python - 为什么 round(2.49999999999999992) 返回 3

python - 在列表字典中搜索值

python - python,从IP摄像机接收rtsp流

python - 如何正确切片for循环?

python - 修改数据框单元格中的字典