← Все вопросы

Как пройтись по словарю в порядке отсортированных ключей?

Задан 6 месяцев назад388 просмотров3 ответа
11

У меня обычный dict, и я хочу вывести пары ключ-значение, но отсортированные по ключу (по алфавиту/возрастанию). Сам словарь хранит порядок вставки, а мне нужен отсортированный обход.

d = {"banana": 3, "apple": 1, "cherry": 2}
# хочу: apple 1, banana 3, cherry 2

3 ответа

19
✓ Принятый ответ — помог автору

Оберни ключи в sorted():

for k in sorted(d):
    print(k, d[k])

sorted(d) возвращает отсортированный список ключей, сам словарь не меняется. Если нужны сразу пары, можно for k, v in sorted(d.items()): — кортежи сравниваются сначала по ключу.

Глеб Степанов И для обратного порядка просто sorted(d, reverse=True) · 6 месяцев назад
6

Можно ещё через dict(sorted(d.items())), если нужен именно новый отсортированный словарь, а не просто обход.

4

sorted(d.items()).

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект