Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用大数据文件进行计算_Python - Fatal编程技术网

Python 使用大数据文件进行计算

Python 使用大数据文件进行计算,python,Python,我有一个非常大(比如几千个)的分区列表,类似于: [[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文件(尤其是滚动时),我的计算机会变得非常慢。是什么让它变慢了?如果使用内存加载整个列表 有没有办法将分区放在另一个文件中,让函数逐项读

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

[[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)
listofparts3=[[[3]、[2,1]、[1,1,1]],
[[6],[5,1],...,[1,1,1,1,1,1]],...]
def addtolist3(n):
a=int(n/3)-2
计数器=0
添加=[]
对于范围内的i(len(第三方清单[a]):
first=第三方清单[a][i]

如果len(first)几千个分区只使用少量内存,那么这可能不是问题的根源

加速函数应用程序的一种方法是使用Python3或Python2


消除重复的最快方法是将它们输入到Python对象中。

文件的大小是多少?大约1 MB的纯文本。这不应该让您的计算机变慢。请张贴代码。我已经添加了一些代码。我认为它只是在python文件本身中有一个列表,这会减慢速度。主要是当我试图滚动文件中包含长列表的部分时,速度会变慢。您是否有机会在文本编辑器中打开.py文件中的大内容?如果有更好的方法,
set()
会比
dict()快吗?真的很好奇:)@pyjg很可能会更快。从本质上讲,dict和set都是隐藏的哈希表,但是,set不需要1)存储与每个键相关的值字段,2)需要优先选择关键字参数和实例dict的常用小dict用例。集合专门用于单一化和快速成员测试,因此它们在这些任务上往往比DICT更好一些,DICT必须服务于其他用例。也就是说,不同的用例和示例往往会触及每个容器的不同“最佳点”。