Skip to main content
 首页 » 编程设计

Python:使用多处理分块处理大型字典

2025年05月04日7dflying

我正在运行一个模拟,字典中存储了大约 1000 万个独特的 DNA 序列。我需要处理每个序列,包括以 5 个为一组逐个字母地遍历序列(取前 5 个字母,将索引按一个换取另一个 5), 并在一个单独的函数中处理它。这需要相当多的时间,因为我设置了它,所以它在 for 循环中一个一个地遍历每个序列。

我正在寻找的是一种将字典分成大约 20 个 block 的方法,我可以使用多处理来处理这些 block 。有没有比遍历每个键并迭代填充 20 个词典更简单的方法?

请您参考如下方法:

我建议使用 itertools.groupby,这是 itertools 的工作。文档 here .

def grouper(n, iterable, fillvalue=None): 
    "grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx" 
    args = [iter(iterable)] * n 
    return izip_longest(fillvalue=fillvalue, *args) 

您所要做的就是指定 block 的数量或您的情况,n = 5