По крайней мере, в Python 3.3 комментарий @Hai Vu не работает, потому что он вызывает ошибку типа, так как dict() не является упорядоченным типом. Однако, комментарий подсказывает ответ, если мы можем преобразовать словарь в упорядочиваемой типа, как список кортежей, например:
>>>> L = [{.56: 'a'}, {1.0: 'a'}, {.98: 'b'}, {1.0: 'c'}]
>>>> L2 = sorted([list(zip(x.keys(),x.values())) for x in L],reverse=True)
>>>> L2
[[(1.0, 'c')], [(1.0, 'a')], [(0.98, 'b')], [(0.56, 'a')]]
>>>> [{k: v for (k,v) in x} for x in L2]
[{1.0: 'c'}, {1.0: 'a'}, {0.98: 'b'}, {0.56: 'a'}]
Начнем с приведенных данных, присвоенного L
, а не list
, чтобы избежать путаницы с ключевое слово list
. Затем мы используем понимание списка, которое создает список списков кортежей, где каждый из подписок - это ключи с застежкой-молнией и значения каждого словаря. В качестве списков их можно сортировать по функции sorted()
.
К сожалению, у нас нет списка словарей, поэтому следующий шаг состоит в том, чтобы преобразовать из списка списков кортежей обратно в список словарей, используя понимание словаря внутри понимания списка, чтобы преобразовать каждый список кортежи в словарь, а затем возвращают их вместе в виде списка.
'sorted (list, reverse = True)' должен делать трюк –
Кстати, 'list' - это глобальная функция, поэтому это не лучший выбор для имени переменной. – twasbrillig