'Decouple dictionary that contains a list as a value for a particular key
Let's say I have a dict in Python that follows this structure:
dict_a = {"a": [1,2,3]}
I want to produce an output to 'decouple' dict_a
in a list of 3 separate dicts like
>>> [{"a": 1}, {"a": 2}, {"a": 3}]
What I have now is:
dict_a = {"a": [1,2,3]}
result = []
for key, values in dict_a.items():
for value in values:
result.append({key: value})
print(result)
>>> [{"a": 1}, {"a": 2}, {"a": 3}]
Is there any way to achieve this or a similar 'decoupling' behavior with list comprehension or a dict
related method?
Solution 1:[1]
While the for loops are quite pythonic and readable, the same can be achieved with comprehensions:
dict_a = {"a": [1,2,3]}
result = [{k: v} for k, vs in dict_a.items() for v in vs]
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | ljmc |