python重新分配内存中的内联列表?

时间:2017-08-20 20:17:54

标签: python for-loop memory-management

我有一对想要迭代的对象。例如:

contentA = [1, 2, ..... 100000]
lenA = 123.12

contentB = [1, 2, ..... 100000]
lenB = 123.12

contentC = [1, 2, ..... 100000]
lenC = 123.12

现在迭代它们,我使用以下python语法:

for (contType, contLen) in [(contentA, lenA), (contentB, lenB), (contentC, lenC)]:
  # Do something

这很好用,但我的问题是:
在for循环中声明内联列表是先分配内存然后迭代它们吗?

由于有问题的对象很庞大,我必须做的迭代次数也很多,所以再次分配内存和放大器。再次消耗内存和时间。

1 个答案:

答案 0 :(得分:0)

您为迭代元素而创建的列表仅包含ContentAContentBContentC上的指针。

由于在该示例中只有3个元素,因此在内存中将花费3个元组(浮点数,指针)列表的大小。这不是那么多。

如果您希望提高效率,可以迭代元组((contentA, lenA), (contentB, lenB), (contentC, lenC))