Python中的低内存索引列表

问题描述 投票:0回答:1

我有以下代码:

l = []
for i in range(A):
    for j in range(B):
        if predicate(i,j): 
            l.append((i, j))

让我们假设AB非常 非常大数字[〜10e7],因此在更坏的情况下,l可能具有A * B的巨大尺寸。假定函数predicate是决定是否采用元组(i,j)的通用函数。

我想要一个解决方案:

  1. 减少保存l所需的内存量
  2. 允许[[0]]中的元素的随机解引用,即:我们在l中选择一个随机索引k,然后返回range(len(l)) 快速相当快地建立列表l[k](也许l不是要使用的功能?]
  3. 我只是不清楚(1),(2)和(3)可能会发生冲突,也许python append不是正确的方法。谁能提供其他方法?

谢谢!

我有以下代码:l = []对于范围(A)中的i:对于范围(B)中的j:if谓词(i,j):l.append((i,j))让我们假定A和B是非常大的数字[〜10e7],所以l ...

python out-of-memory
1个回答
0
投票
代替元组和重复的list,您主要可以只存储i-值:
© www.soinside.com 2019 - 2024. All rights reserved.