в python, есть ли одна строка pythonic, чтобы получить список ключей из словаря в отсортированном порядке?

Метод сортировки списка – это функция-модификатор, которая возвращает None.

Поэтому, если я хочу перебирать все ключи в словаре, я не могу:

 для k в somedictionary.keys (). sort ():
     сделай что-нибудь()

вместо этого я должен:

 keys = somedictionary.keys ()
 keys.sort ()
 для k в ключах:
     сделай что-нибудь()

Есть ли хороший способ перебора этих ключей в отсортированном порядке без необходимости разбивать его на несколько этапов?

3 Solutions collect form web for “в python, есть ли одна строка pythonic, чтобы получить список ключей из словаря в отсортированном порядке?”

for k in sorted(somedictionary.keys()): doSomething(k) 

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

 for k, v in sorted(somedictionary.iteritems()): doSomething(k, v) 

Могу ли я ответить на свой вопрос?

Я только что открыл удобную функцию «sorted», которая делает именно то, что я искал.

 для k в отсортированном (somedictionary.keys ()):
     сделай что-нибудь()

Он отображается в виде ключа Python 2.5 Dictionary 2

На самом деле, .keys () не требуется:

 for k in sorted(somedictionary): doSomething(k) 

или

 [doSomethinc(k) for k in sorted(somedict)] 
Python - лучший язык программирования в мире.