первый шаг: получить списки: достаточно простое отображение dict.values
на слова:
>>> list(map(dict.values,list_of_dicts))
[['value_a', 'value_b'], ['value_c', 'value_d'], ['value_e', 'value_f']]
Теперь для окончательного результата, без циклов, единственной альтернативой является map
с lambda
, но это ужасно
>>> list(map(lambda x : OrderedDict((x,)),map(dict.values,list_of_dicts)))
[OrderedDict([('value_a', 'value_b')]),
OrderedDict([('value_c', 'value_d')]),
OrderedDict([('value_e', 'value_f')])]
, что намного лучше (и, вероятно, быстрее) с пониманием внешнего списка:
[OrderedDict((x,)) for x in map(dict.values,list_of_dicts)]
примечание: зачем использовать OrderedDict
, если у вас есть только 1 значение на словарь ? зачем хранить только одно значение в словаре? Если это не шаг инициализации, модель данных выглядит сомнительной.