Сортировка словаря с использованием operator.itemgetter

Здесь был задан вопрос о SO , несколько минут назад о сортировке ключей словаря по их значениям.

Я только что прочитал о методе сортировки operator.itemgetter несколько дней назад и решил попробовать его, но, похоже, он не работает.

Не то, чтобы у меня были проблемы с этим. ответы на вопросы, я просто хотел попробовать это с помощью operator.itemgetter .

Итак, диктат был:

>>> mydict = { 'a1': ['g',6],
           'a2': ['e',2],
           'a3': ['h',3],
           'a4': ['s',2],
           'a5': ['j',9],
           'a6': ['y',7] }

Я пробовал это:

>>> l = sorted(mydict.itervalues(), key=operator.itemgetter(1))
>>> l
[['e', 2], ['s', 2], ['h', 3], ['g', 6], ['y', 7], ['j', 9]]

И это работает так, как я хочу. Однако, поскольку у меня нет полного словаря ( mydict.itervalues ​​() ), я попробовал следующее:

>>> complete = sorted(mydict.iteritems(), key=operator.itemgetter(2))

Это не работает (как я ожидал).

Итак, как Сортировка словаря с помощью operator.itemgetter и вызов itemgetter для вложенной пары ключ-значение.

19
задан Community 23 May 2017 в 12:02
поделиться