делает внутренний zip-код из id
и number
, поэтому мы знаем, какой идентификатор принадлежит какому номеру,
, затем используем max с пользовательской ключевой функцией (по номеру), а затем разделяем их:
test = {}
test['A'] = {}
test['A']['number'] = [2,2,3]
test['A']['id'] = ['x','y','z']
test['B'] = {}
test['B']['number'] = [1,3,2]
test['B']['id'] = ['a','b','c']
tuple_list = [max(*l, key=lambda t: t[1]) for l in zip(zip(test['A']['id'],test['A']['number']), zip(test['B']['id'],test['B']['number']))]
max_num_list = [t[1] for t in tuple_list]
max_id_list = [t[0] for t in tuple_list]
print(max_num_list)
print(max_id_list)
Вывод:
[2, 3, 3]
['x', 'b', 'z']