我有一对想要迭代的对象。例如:
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循环中声明内联列表是先分配内存然后迭代它们吗?
由于有问题的对象很庞大,我必须做的迭代次数也很多,所以再次分配内存和放大器。再次消耗内存和时间。
答案 0 :(得分:0)
您为迭代元素而创建的列表仅包含ContentA
,ContentB
和ContentC
上的指针。
由于在该示例中只有3个元素,因此在内存中将花费3个元组(浮点数,指针)列表的大小。这不是那么多。
如果您希望提高效率,可以迭代元组((contentA, lenA), (contentB, lenB), (contentC, lenC))
。