如何以函数式方式使用python从字典列表创建字典列表

2024-04-25 03:47:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经从scala转到python来训练深度学习模型。我缺少了一些数据操作的函数方法的表达能力,尤其是group by。 我想拆分一组/列表文件(路径库路径对象)至2组:验证和培训。我有一个函数which_set,它为每个文件关联一个集合名。在scala我会写:

>>> all_paths = TRAIN_PATH.glob('*')
>>> all_paths.groupby(which_set) 
{'valid': [....], 'train': [....]}

在Python中我挣扎着。我可以使用pandas和它的groupby方法,但是我必须将all_paths转换成字符串。不太理想。我可以使用itertools,但它会多次调用每个元素的设置:

from itertools import groupby
{k : list(l) for k, l in groupby(sorted(all_paths, key=which_set), key=which_set)}

这段代码看起来更像python,但它没有功能,而且很难阅读(与scala版本相比)

paths = {}
for x in all_paths: paths.setdefault(which_set(x), []).append(x)

你知道有什么图书馆或方法可以帮助我吗?你知道吗


Tags: 文件方法key函数in模型路径which