所以,我不打算先解释事情的内容,而是直接展示我拥有的和我想要的(这样更容易):
我拥有的内容:
dict_list = [
{'some': 1.2, 'key': 1.3, 'words': 3.9, 'label': 0},
{'other': 1.2, 'wordly': 1.3, 'words': 3.9, 'label': 1},
{'other': 10, 'work': 1.3, 'like': 3.9, 'label': 1},
]
我想从我所拥有的获取什么:
dict_dict = { "0":{'some': 1.2, 'key': 1.3, 'words': 3.9},
"1":{'other': 10, 'wordly': 1.3, 'work': 1.3, 'like': 3.9, 'words': 3.9},
}
解释:
因此,我想通过使用“label
”键作为新字典的主键来创建一个字典。我还需要合并具有相同标签的字典。在合并时,如果存在重复的键(例如示例中的“other
”键),则需要保留最高值。
为什么我不在创建原始字典列表之前完成所有这些操作呢?
因为dict_list
是joblib(多进程)过程的结果。在进程之间共享某些对象会减慢多进程处理速度。因此,我决定在多个核心上运行繁重的工作,然后再进行整理。我不确定这种方法是否有帮助,但我没有测试就无法知道。
a|b
,即在相同的键中保留更高的值,在Python中尚不可用(它将在Python3.9中发布,因此您将不需要Counter)。否则,您需要生成至少一个新字典,并通过迭代键来更新它的最大值。我写这个只是为了方便编程。 - Himanshu Sheoran