根据值统一拆分字典

时间:2019-01-06 07:10:43

标签: python dictionary math set

我有一本字典,其中的键是表名,值是那些表中的行数。因此表'a'具有1行,'c'具有3行,依此类推。

data = {
    'a': 1,
    'b': 1,
    'c': 3,
    'd': 1,
    'e': 5
}

我必须对这些表执行一些复杂的操作,我正在使用多处理以并行方式对这些表运行操作。为此,我需要对字典进行重新排序,以使多个进程之间的行数一致(负载均衡的类型,以便所有进程共享相同的权重)。请注意,产生的进程数将是一个变量(由用户从cmd行提供)。

因此,假设我们要为上述数据创建2个进程,则应按以下方式拆分。 data1将处理6行,而data2将处理5行,因此这两个过程所需的时间几乎相等。

data1 = {
    'a': 1,
    'b': 1,
    'c': 3,
    'd': 1,
}


data2 = {
    'e': 5
}

同样,如果我们要为上述数据创建3个流程,则

data1 = {
    'a': 1,
    'b': 1,
    'd': 1,
}

data2 = {
    'c': 3
}

data3 = {
    'e': 5
}

注意:词典可能包含100,000个键,因此,不希望有时间复杂度较低的解决方案。谢谢!

0 个答案:

没有答案