在Python中处理大型词典列表的最佳方法
我正在进行一项统计测试,使用10000个排列作为零分布 每个排列都是一个10000键的字典。每个键都是一个基因,每个值都是一组患者对应的基因。此词典是通过编程生成的,可以写入文件或从文件读入 我希望能够迭代这些排列来执行统计测试;但是,在堆栈上保留这个大列表会降低我的性能 有没有一种方法可以将这些字典保存在存储内存中,并在我遍历它们时生成排列在Python中处理大型词典列表的最佳方法,python,dictionary,Python,Dictionary,我正在进行一项统计测试,使用10000个排列作为零分布 每个排列都是一个10000键的字典。每个键都是一个基因,每个值都是一组患者对应的基因。此词典是通过编程生成的,可以写入文件或从文件读入 我希望能够迭代这些排列来执行统计测试;但是,在堆栈上保留这个大列表会降低我的性能 有没有一种方法可以将这些字典保存在存储内存中,并在我遍历它们时生成排列 谢谢大家! 这是一个一般的计算问题;您需要存储数据的内存速度,但内存不足。您至少有以下选项: 购买更多内存(显然) 让进程交换。这就让操作系统决定将哪些
谢谢大家! 这是一个一般的计算问题;您需要存储数据的内存速度,但内存不足。您至少有以下选项:
- 购买更多内存(显然)
- 让进程交换。这就让操作系统决定将哪些数据存储在磁盘上,哪些数据存储在内存中
- 不要一下子把所有的东西都装进内存
def get_data(filename):
with open(filename) as f:
while True:
line = f.readline()
if line:
yield line
break
for item in get_data('my_genes.dat'):
gather_statistics(deserialize(item))
一种变体是将数据拆分为多个文件或将数据存储在数据库中,以便一次批处理n个数据项。这些排列来自何处?它们来自数据集文件或是通过编程生成的?@JuanLopes它们是通过编程生成的,但可以写入或从文件读取。生成它们时如何存储和访问它们?Thx keizom用于此链接