Skip to content
Advertisement

merge two lists into dictionary

I’m trying to merge two lists to dict:

l1 = [1, 3, 6, 0, 1, 1]
l2 = ['foo1', 'foo2', 'foo1', 'foo2', 'foo2', 'bar1']

I’d like to get:

list = [{"foo1": 1},
             {"foo2": 3},
             {"foo1": 6},
             {"foo2": 0},
             {"foo2": 1},
             {"bar1": 1},]

trying to use zip but get an error :”<zip object at 0x000>”

Advertisement

Answer

You can try this:

l1 = [1, 3, 6, 0, 1, 1]
l2 = ['foo1', 'foo2', 'foo1', 'foo2', 'foo2', 'bar1']

data = [{k: v} for k, v in zip(l2, l1)]

print(data)

Output:

[{'foo1': 1}, {'foo2': 3}, {'foo1': 6}, {'foo2': 0}, {'foo2': 1}, {'bar1': 1}]

I wouldn’t consider this an ideal data structure though, unless you have a lot more data in the individual dictionaries.

User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement