LINUX.ORG.RU

Отсортировать сложный словарь на python

 ,


0

2

Есть словарь вида

{1:{'name': 'Иванов', 'salary': 5000}, 2:{'name': 'Алексеев', 'salary': 4000}, 3:{'name': 'Громов', 'salary': 3000}}

Нужно отсортировать по name, в итоге получить такой словарь

{2:{'name': 'Алексеев', 'salary': 4000}, 3:{'name': 'Громов', 'salary': 3000}, 1:{'name': 'Иванов', 'salary': 5000}}

Так как словарь может быть большой по размеру желательно использовать оптимальный способ сортировки



Последнее исправление: xaizek (всего исправлений: 1)

Выбрать/преобразовать в правильную структуру вместо того, что есть сейчас.

Словарь - это доступ по ключу, зачем его сортировать?

vvn_black ★★★★★
()
d = {1:{'name': 'Иванов', 'salary': 5000}, 2:{'name': 'Алексеев', 'salary': 4000}, 3:{'name': 'Громов', 'salary': 3000}}
d = dict(sorted(d.items(), key = lambda x: x[1]['name']))
Sahas ★★★★☆
()

У племянника в универе тоже было подобное задание. Видимо в какую-то распространенную методичку попало. Представляю какая каша в голове потом будет у студентов.

ei-grad ★★★★★
()
Последнее исправление: ei-grad (всего исправлений: 1)

Словарь не сортируют (смысла в этом мало). Можно выводить данные из словаря в нужном порядке.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)

Дак словари вроде и так отсортированные по хэшу хранилища?

saibogo ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.