Есть такой словарь , по результату сортировки нужно получить словарь упорядоченный по длине значений внутренних словарей
s = {
129969536777:
{
'video':
[
'customers/2309565764/assets/20029085042',
'customers/2309565764/assets/20029089104',
'customers/2309565764/assets/20033811553'
],
'images':
[
'customers/2309565764/assets/20029085042',
'customers/2309565764/assets/20029085045'
]
},
129969536817:
{'video':
[
'customers/2309565764/assets/19216519025',
'customers/2309565764/assets/19224387517',
'customers/2309565764/assets/19251302439'
]
},
129969536857:
{'video':
[
'customers/2309565764/assets/20029091369',
'customers/2309565764/assets/20029091753',
'customers/2309565764/assets/19251302592',
'customers/2309565764/assets/19251302592'
]
},
129969536444: {}
}
Внутри вложенного словаря в качестве значений могут быть ключи
image,
video с разными размерами списков. Так же ключ может иметь пустой словарь в качестве значения. В результате сортировки элементы с максимальным размером сипска идут вначале последовательности.
Например у ключа 129969536777 есть и image и video и в совокупности длина значений по этим ключам == 5 , следовательно 129969536777 останется на первом месте резульирующй последовательности. 129969536857 имеет длину значения == 4 , он будет на второй позиции и т.д.
городить цикл не вариант, пробую через
sorted()
res = (sorted(s, key = lambda k: len(s[k].values()), reverse=True))
Но получаю
[129969536777, 129969536817, 129969536857, 129969536444]
неправильная последовательность + нет значений
порядок должен быть таким
[129969536777, 129969536857, 129969536817 , 129969536444]
Если пробую со значениями
res = (sorted(s.keys(), key = lambda k: len(s[k].values()), reverse=True))
то получаю ошибку
TypeError: unhashable type: 'dict'