python список диктов - конвертирует каждое значение ключа как отдельный дикт - PullRequest
1 голос
/ 10 марта 2020

со списком, подобным приведенному ниже, с одним или несколькими диктовками

l = [{'b': 'h', 'c': (1,2)}, {'d': [0, 1], 'e': {'f': 2, 'g': 'i'} } ]

необходимо извлечь каждую пару ключ-значение как отдельный дикт 1008 *

[{'b': 'h'}, {'c': (1,2)}, {'d': [0, 1]}, {'e': {'f': 2, 'g': 'i'} } ]

Я пытался сделать это через понимание списка - внешнее понимание могло бы быть чем-то вроде [ {k,v} for k, v in ?? - нужна помощь в получении внутреннего понимания.

Ответы [ 2 ]

6 голосов
/ 10 марта 2020

Я считаю, что это то, что вы ищете - за исключением того, что порядок элементов может быть другим, но этого следует ожидать при работе со словарями:

lst = [{'b': 'h', 'c': (1,2)}, {'d': [0, 1], 'e': {'f': 2, 'g': 'i'}}]
[{k: v} for d in lst for k, v in d.items()]

=> [{'c': (1, 2)}, {'b': 'h'}, {'e': {'g': 'i', 'f': 2}}, {'d': [0, 1]}]
3 голосов
/ 10 марта 2020

Это должно работать:

[{k: v} for i in l for k, v in i.items()]
...