首页 > 解决方案 > itertools 按多个键分组

问题描述

我正在使用itertools以下内容group bydictionary key

host_data = []
for k,v in itertools.groupby(temp_data, key=lambda x:x['device_id'])
    d = {}
    for dct in v:
        d.update(dct)
    host_data.append(d) 

但是,如果可能的话,我想按 'device_id' 和 'port_id' 分组,我怎样才能在分组中添加一个额外的键?

标签: pythonitertools

解决方案


只需使用元组作为键:

itertools.groupby(temp_data, key=lambda x:(x['device_id'], x['port_id']))

推荐阅读