L = [{k: d[k](v) for (k, v) in l.iteritems()} for l in L]
куда
L
— это список упорядоченных словарей (т.е. объектов collections.OrderedDict), где словари имеют одинаковый набор ключей.d
— еще один упорядоченный словарь, который также имеет тот же набор ключей, что и предыдущие упорядоченные словари.Для каждого
key
функцияd[key]
может применяться кL[i][key]
, т.е.d[key](L[i][key])
.
Все данные словари являются упорядоченными словарями и имеют одинаковый порядок в своих ключах.
Но код создаст неупорядоченный словарь. Как я могу создать упорядоченный словарь в том же ключевом порядке, что и заданные упорядоченные словари?
from collections import OrderedDict dict1 = OrderedDict({x: x**5 for x in (1, 5, 10)}).__class__ ord_dict = OrderedDict({x: x**5 for x in (1, 5, 10)}) print(ord_dict) # OrderedDict([(1, 1), (10, 100000), (5, 3125)])
04.01.2019OrderedDict
не имеет ничего общего с неожиданным порядком здесь. 14.01.2019