Skip to content Skip to sidebar Skip to footer

Mapping Multiple Lists To Dictionary

I have 5 lists and I want to map them to a hierarchical dictionary. let's say i have: temp = [25, 25, 25, 25] volt = [3.8,3.8,3.8,3.8] chan = [1,1,6,6] rate = [12,14,12,14] power =

Solution 1:

This is only slightly tested, but it seems to do the trick. Basically, what f does, is to create a defaultdict of defaultdicts.

f = lambda: collections.defaultdict(f)
d = f()
for i in range(len(temp)):
    d[temp[i]][volt[i]][chan[i]][rate[i]] = power[i]

Example:

>>> print d[25][3.8][6][14]15.1

(The idea is borrowed from this answer to a related question.)

Solution 2:

You can try the following ... I believe it serves what you want

>>># Given your sample data.>>>ans = {}>>>for (t, v, c, r, p) inzip(temp, volt, chan, rate, power):...ifnot t in ans:...            ans[t] = {}...ifnot v in ans[t]:...            ans[t][v] = {}...ifnot c in ans[t][v]:...            ans[t][v][c] = {}...ifnot r in ans[t][v][c]:...            ans[t][v][c][r] = p>>>print ans
{25: {3.8: {1: {12: 13.2, 14: 15.3}, 6: {12: 13.8, 14: 15.1}}}}

Post a Comment for "Mapping Multiple Lists To Dictionary"