Задать вопрос
@Tayrus0

Как отсортировать словарь по значению?

Есть словарь
workers = {
    'empl1': '13150',
    'empl2': '11100',
    'empl3': '19500',
    'empl4': '3000',
    'empl5': '18000',
    'empl6': '8585',
    'empl7': '1',
    'empl8': '1',
    'empl9': '7000',
    'empl10': '7070',
    'empl11': '2730',
    'empl12': '11615',
    'empl13': '10000',
    'empl14': '7170',
    'empl15': '99999999',
    'empl16': '11000',
    'empl17': '4300',
    'empl18': '666',
    'empl19': '54000'
}

Я хочу отсортировать его по возрастанию, по значениям. Сортирую его так:
sorted_by_value = sorted(workers.items(), key=lambda kv: kv[1], reverse=True)
print(dict(sorted_by_value))
Но на выходе получаю неправильную сортировку:
{
    'empl15': '99999999',
    'empl6': '8585',
    'empl14': '7170',
    'empl10': '7070',
    'empl9': '7000',
    'empl18': '666',
    'empl19': '54000',
    'empl17': '4300',
    'empl4': '3000',
    'empl11': '2730',
    'empl3': '19500',
    'empl5': '18000',
    'empl1': '13150',
    'empl12': '11615',
    'empl2': '11100',
    'empl16': '11000',
    'empl13': '10000',
    'empl7': '1',
    'empl8': '1'
}

Почему так и как его отсортировать?
  • Вопрос задан
  • 141 просмотр
Подписаться 1 Простой 2 комментария
Ответ пользователя meaqese К ответам на вопрос (5)
meaqese
@meaqese
workers = {
    'empl1': '13150',
    'empl2': '11100',
    'empl3': '19500',
    'empl4': '3000',
    'empl5': '18000',
    'empl6': '8585',
    'empl7': '1',
    'empl8': '1',
    'empl9': '7000',
    'empl10': '7070',
    'empl11': '2730',
    'empl12': '11615',
    'empl13': '10000',
    'empl14': '7170',
    'empl15': '99999999',
    'empl16': '11000',
    'empl17': '4300',
    'empl18': '666',
    'empl19': '54000'
}

sorted_dict = sorted(workers.items(), key=lambda worker: int(worker[1]))
print(sorted_dict)
Ответ написан
Комментировать