Как я могу отсортировать словарь по ключу?

Если вы в порядке с ООП, подумайте о создании метода для каждого класса, который выводит сериализованную версию (используя pickle) в файл. Затем добавьте второй метод для загрузки в экземпляр данных, и если в маринованном файле вы вызываете метод загрузки вместо обрабатывающего. Я использую этот подход для ML, и это действительно запустило мой рабочий процесс.

782
задан MERose 1 May 2015 в 22:57
поделиться

2 ответа

Другой подход pythonic был бы

def sort_dict(my_dict):
    return sorted(my_dict.items(), key=lambda x :x[1])


0
ответ дан 22 November 2019 в 21:14
поделиться

Эта функция отсортирует любой словарь рекурсивно его ключом. Таким образом, если какое-либо значение в словаре будет также словарем, то это также будет отсортировано по его ключу. Если Вы работаете на CPython 3.6 или больше, чем простое изменение для использования dict, а не OrderedDict может быть внесено.

from collections import OrderedDict

def sort_dict(d):
    items = [[k, v] for k, v in sorted(d.items(), key=lambda x: x[0])]
    for item in items:
        if isinstance(item[1], dict):
            item[1] = sort_dict(item[1])
    return OrderedDict(items)
    #return dict(items)
2
ответ дан 22 November 2019 в 21:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: