почему возвращает не самое минимальное?

dict1 = {'ссылка1': '4.50', 'ссылка2': '6.00', 'ссылка3': '19.60', 'ссылка4': '17.40'}

print(min(dict1, key=dict1.get))

выводит: ссылка4

почему так, если минимальное значение у ключа 'ссылка1' и как это исправить?


Ответы (1 шт):

Автор решения: E1mir

Сортировка в данном случае проходит верно, так как значения в словаре являются строками, а не числами и всё сортируется по алфавиту..

Ну а чтобы получить реально минимальное значение, сперва нужно все значения в словаре конвертировать в число:

d = {
    'ссылка1': '4.50',
    'ссылка2': '6.00',
    'ссылка3': '19.60',
    'ссылка4': '17.40'
}

# Конвертируем значения в число
converted_to_num = dict((k, float(v)) for k, v in d.items())

# получаем минимальное значение
print(min(converted_to_num, key=converted_to_num.get))
→ Ссылка