我有一本字典,其中的键是表名,值是那些表中的行数。因此表'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个键,因此,不希望有时间复杂度较低的解决方案。谢谢!