Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python: Convert multiple list into an array of dictionary

Imagine that you have the following list.

name = ['bob', 'kate', 'john']
age = [35, 12, 57]
gender = ["Male", "Female", "Male"]

How do you convert it to an array of dictionary?

[
  {
    "name": "bob"
    "age": 35
    "gender": "Male"
  },
  {
    "name": "kate"
    "age": 12
    "gender": "Female"
  },
  {
    "name": "john"
    "age": 57
    "gender": "Male"
  }
]
like image 838
Ishan Avatar asked Aug 10 '26 20:08

Ishan


1 Answers

A generic method which works for any number of lists with customizable field names

import pprint
def make_complex(**kwargs):
    return [dict(zip(kwargs.keys(), a)) for a in zip(*kwargs.values())]

name = ['bob', 'kate', 'john']
age = [35, 12, 57]
gender = ["Male", "Female", "Male"]

l = make_complex(name=name, age=age, gender=gender)
pprint.pprint(l)

l = make_complex(user=name, year=age, sex=gender)
pprint.pprint(l)

output:

[{'age': 35, 'gender': 'Male', 'name': 'bob'},
 {'age': 12, 'gender': 'Female', 'name': 'kate'},
 {'age': 57, 'gender': 'Male', 'name': 'john'}]
[{'sex': 'Male', 'user': 'bob', 'year': 35},
 {'sex': 'Female', 'user': 'kate', 'year': 12},
 {'sex': 'Male', 'user': 'john', 'year': 57}]
like image 99
Anurag Uniyal Avatar answered Aug 13 '26 12:08

Anurag Uniyal



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!