How do I zip keys with individual values in my lists in python?

dictionary, key, python

Solution

>>> [dict(zip(k, x)) for x in v]
[{'a': 1, 'b': 2}, {'a': 3, 'b': 4}]

Problem

I am importing a matrix, turning the first row into keys, and turning the rest of the rows into values. I want to zip the keys with each value and put them in a dictionary. ex: If I have the following: ``` k = ['a', 'b'] v = [[1,2], [3,4]] ``` I want to take each value in v (for x in v) and zip them (k and x) then convert to a dictionary. Then I will add the dictionaries to a list of dictionaries. At the end I should have: ``` dicts = [{'a':1, 'b':2}, {'a':3, 'b':4}] ``` Right now, I am only zipping my rows with my keys. How do I fix this? ``` matrix_filename = raw_input("Enter the matrix filename: ") matrix = [i.strip().split() for i in open(matrix_filename).readlines()] keys = matrix[0] vals= (matrix[1:]) N=len(vals) dicts = [] for i in range(1,N): for j in range(1,N): vals[i-1][j-1] = int(matrix[i][j]) dicts = dict(zip(keys,vals)) ```

Original source

Related problems