gpt4 book ai didi

python - 使用大数据文件进行计算

转载 作者:太空宇宙 更新时间:2023-11-03 15:02:07 25 4
gpt4 key购买 nike

我有一个非常大(比如说几千)的分区列表,例如:

[[9,0,0,0,0,0,0,0,0], 
[8,1,0,0,0,0,0,0,0],
...,
[1,1,1,1,1,1,1,1,1]]

我想要做的是对每个函数应用一个函数(输出少量分区),然后将所有输出放入列表中并删除重复项。

我可以做到这一点,但问题是,如果我将上面的列表直接放入 python 文件中(尤其是滚动时),我的计算机会变得非常慢。是什么让它变得缓慢?如果是使用内存来加载整个列表,

有没有办法将分区放入另一个文件中,并让该函数逐个读取列表?

编辑:我正在添加一些代码。我的代码可能效率很低,因为我相当业余。所以我真正拥有的是一个分区列表列表,我想将其添加到:

listofparts3 = [[[3],[2,1],[1,1,1]],
[[6],[5,1],...,[1,1,1,1,1,1]],...]

def addtolist3(n):
a=int(n/3)-2
counter = 0
added = []
for i in range(len(listofparts3[a])):
first = listofparts3[a][i]
if len(first)<n:
for i in range(n-len(first)):
first.append(0)
answer = lowering1(fock(first),-2)[0]
for j in range(len(answer)):
newelement = True
for k in range(len(added)):
if (answer[j]==added[k]).all():
newelement = False
break
if newelement==True:
added.append(answer[j])
print(counter)
counter = counter+1
for i in range(len(added)):
added[i]=partition(added[i]).tolist()
return(added)

fock、lowering1、partition都是早期代码中的函数,它们是非常简单的函数。上面的函数,例如 addtolist(24),获取我拥有的所有 21 分区并返回所需的 24 分区列表,然后我可以将其附加到 listofparts3 的末尾。

最佳答案

几千个分区仅使用适量的内存,因此这可能不是问题的根源。

加速函数应用的一种方法是使用 map()对于 Python 3 或 itertools.imap()从 Python 2 开始。

消除重复的最快方法是将它们输入Python set()对象。

关于python - 使用大数据文件进行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44977102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com