группа itertools по нескольким ключам - PullRequest
0 голосов
/ 27 июня 2018

Я использую itertools до group by a 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) 

Однако я бы хотел сгруппировать по 'device_id' и 'port_id', если это возможно, как я могу добавить дополнительный ключ к группировке?

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Просто используйте кортеж в качестве ключа:

itertools.groupby(temp_data, key=lambda x:(x['device_id'], x['port_id']))
0 голосов
/ 27 июня 2018

Сделать ключ кортежем: key=lambda x: (x['device_id'], x['port_id']).

...