how to convert 2 dimensional list into list of dictionary in python?

Question:

I have a 2 dimensional list of list but I would like the list inside the list to be dictionary

list1 = [["ab","cd"],["ef","gh"]]    
#code here,
print(output_list_of_dict)
#output should be ...
#[{"name": "ab", "phone":"cd"},{"name": "ef", "phone":"gh"}]
Asked By: fardV

||

Answers:

list1 = [["ab","cd"],["ef","gh"]]

res = []
for item in list1:
    res.append({"name": item[0], "phone": item[1]})
print(res)

If you want to use list comprehension for a more "pythonic" way:

list1 = [["ab","cd"],["ef","gh"]]

res = [{"name": item[0], "phone": item[1]} for item in list1]

print(res)
Answered By: Leon

Here is your solution:

list1 = [["ab","cd"],["ef","gh"]]    

output = []

for item in list1:
    dic = {}
    dic["name"] = item[0]
    dic["phone"] = item[1]

    output.append(dic)


print(output)
Answered By: Amirhossein Sefati

dict and zip will also work

l = ["name", "phone"]
[dict(zip(l,i)) for i in list1]

You can do this directly with a comprehension and tuple unpacking:

list1 = [["ab","cd"],["ef","gh"]]
output_list_of_dict = [{"name": x, "phone": y} for x, y in list1]
Answered By: joanis
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.