Это можно сделать с помощью sorted()
- обратите внимание, что разница между моим примером и вашим заключается в том, что мой сортирует результат метода d.items()
, который возвращает список кортежей ключ-значение, а ваш пытается отсортировать * 1003. *, который является ссылкой на саму функцию. Мы также можем отформатировать результат как словарь, используя словарь-понимание; например:
>>> d = {'123456798': ('*1L 2% Vitali Mil', 41, '(780) 890 7654', 59.45),
'123456789': ('*2L 2% Vitali Mil', 47, '(780) 789 0123', 121.26)}
>>> sorted(d.items(), key=lambda item: item[1][2])
[('123456789', ('*2L 2% Vitali Mil', 47, '(780) 789 0123', 121.26)),
('123456798', ('*1L 2% Vitali Mil', 41, '(780) 890 7654', 59.45))]
>>> {k: v for k, v in sorted(d.items(), key=lambda item: item[1][2])}
{'123456789': ('*2L 2% Vitali Mil', 47, '(780) 789 0123', 121.26),
'123456798': ('*1L 2% Vitali Mil', 41, '(780) 890 7654', 59.45)}
Обратите внимание, что вы не должны использовать встроенную переменную dict
для именования своих словарей - при этом перезаписывается класс dict
, поэтому, если вы попытаетесь использовать dict()
в В будущем результаты будут не такими, как ожидалось.