Есть ли способ отсортировать вывод словаря по ключам, где числа являются ключами? - PullRequest
0 голосов
/ 13 июля 2020

Я хочу упорядочить вывод словаря, где ключи являются числами, но я продолжаю сталкиваться с проблемой, когда значения сортируются следующим образом, когда я использую OrderedDict из коллекций или команду sorted (). Результат выглядит следующим образом:

[('0', 12), ('1', 18), ('14', 26), ('18', 17), ('2', 11), ('24', 13)...]

Есть ли способ, чтобы ключи были отсортированы в правильном числовом порядке?

Спасибо

1 Ответ

1 голос
/ 13 июля 2020

Возможно, вы ищете «естественную сортировку» (pip install natsort):

from natsort import natsort
from collections import OrderedDict

lst = [('0', 12), ('1', 18), ('14', 26), ('18', 17), ('2', 11), ('24', 13)]
dct = OrderedDict()
for key, value in natsort.natsorted(lst):
    dct[key] = value
print(dct)

Это дает

{'0': 12, '1': 18, '2': 11, '14': 26, '18': 17, '24': 13}

Начиная с Python 3.6 порядок запоминается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...