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"