有效实施清单清单

时间:2015-11-12 18:41:07

标签: python list linked-list

我试图实现列表列表:

  • 外部列表的大小是已知的(例如N)
  • 每个元素列表的大小可以不同,并在运行时确定。

这种天真的实现可能如下所示:

L = [[] for x in range(N)]

然后在数据输入时更新L[i]

L[i] = range(M)

但是如果元素列表不适合当前位置,python必须将整个列表复制到新位置,因此这将非常重要。

我相信解决方案是使用外部列表的链表,但由于缺乏Python中的预定义链接列表实现,我想知道还有另一种解决方案吗?

1 个答案:

答案 0 :(得分:1)

Python不会将子列表存储在外部列表中;它只存储对外部列表中的子列表的引用。重新分配内部列表永远不需要复制外部列表;在实现级别,它只是一个指针赋值。

如果您熟悉C#或Java,那么您熟悉的术语是所有是Python中的引用类型。如果您熟悉C ++,请将其视为调整vector<vector<int>>中内部向量的大小不会调整外部向量的大小。