Ответ 1
for k in sorted(somedictionary.keys()):
doSomething(k)
Обратите внимание, что вы также можете получить все ключи и значения, отсортированные по таким клавишам:
for k, v in sorted(somedictionary.iteritems()):
doSomething(k, v)
Список sort()
метод - это функция-модификатор, которая возвращает None
.
Итак, если я хочу перебирать все ключи в словаре, я не могу:
for k in somedictionary.keys().sort():
dosomething()
Вместо этого я должен:
keys = somedictionary.keys()
keys.sort()
for k in keys:
dosomething()
Есть ли хороший способ перебора этих ключей в отсортированном порядке без необходимости разбивать его на несколько этапов?
for k in sorted(somedictionary.keys()):
doSomething(k)
Обратите внимание, что вы также можете получить все ключи и значения, отсортированные по таким клавишам:
for k, v in sorted(somedictionary.iteritems()):
doSomething(k, v)
Могу ли я ответить на свой вопрос?
Я только что открыл удобную функцию "sorted", которая делает именно то, что я искал.
for k in sorted(somedictionary.keys()): dosomething()
Он отображается в ключевом произведении Python 2.5 Dictionary 2
На самом деле,.keys() не требуется:
for k in sorted(somedictionary):
doSomething(k)
или
[doSomethinc(k) for k in sorted(somedict)]