@agent_2203

Как отсортировать dict по размерам list в их значениях?

Есть следующий dict:

dct = {1: [1, 2, 3, 4, 5], 2:[1, 2, 3], 3:[1, 2, 3, 4, 5, 6, 7, 8, 9], 4:[1, 2, 3, 4, 5, 6, 7, 8], 5:[1, 2, 3, 4, 5, 6, 7, 8, 9]}


Как можно отсортироать dict так, чтобы все ключи со значениями шли по возрастанию размеров list в значениях ? Соотвественно чтобы на выходе был следующий формат

{2:[1, 2, 3], 1: [1, 2, 3, 4, 5] , 4:[1, 2, 3, 4, 5, 6, 7, 8], 3:[1, 2, 3, 4, 5, 6, 7, 8, 9], 5:[1, 2, 3, 4, 5, 6, 7, 8, 9]}
  • Вопрос задан
  • 81 просмотр
Решения вопроса 2
Wispik
@Wispik
res = dict(sorted(dct.items(), key=lambda item: len(item[1])))
Ответ написан
Комментировать
@twistfire92
Python backend developer
Для вывода можно сделать так:

dct = {1: [1, 2, 3, 4, 5], 2:[1, 2, 3], 3:[1, 2, 3, 4, 5, 6, 7, 8, 9], 4:[1, 2, 3, 4, 5, 6, 7, 8], 5:[1, 2, 3, 4, 5, 6, 7, 8, 9]}

list_dct = list(dct.items())
list_dct.sort(key=lambda i: len(i[1]))
for i in list_dct:
    print(i[0], ':', i[1])

# Вывод:
# 2 : [1, 2, 3]
# 1 : [1, 2, 3, 4, 5]
# 4 : [1, 2, 3, 4, 5, 6, 7, 8]
# 3 : [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 5 : [1, 2, 3, 4, 5, 6, 7, 8, 9]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы