itertools组按多个键

Ale*_*exW 3 python python-itertools

我使用itertoolsgroup by一个dictionary 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) 
Run Code Online (Sandbox Code Playgroud)

但是,如果可能的话,我想按“ device_id”和“ port_id”进行分组,如何为该分组添加其他密钥?

Net*_*ave 7

只需使用元组作为键:

itertools.groupby(temp_data, key=lambda x:(x['device_id'], x['port_id']))
Run Code Online (Sandbox Code Playgroud)