Nested List To Dict With Count Groups
I have nested list: L = [[15,10], [11], [9,7,8]] and need count groups like [15, 10] is 0 group, [11] is 1 group and [9,7,8] is 2 group - output is dictionary: print (d) {7: 2, 8:
Solution 1:
What about using:
d = {v: i for i,l in enumerate(L) for v in l}
which generates:
>>> {v:ifori,linenumerate(L)forvinl}
{7:2, 8:2, 9:2, 10:0, 11:1, 15:0}
The idea is as follows: first we iterate over L with enumerate(L) and we thus obtain the indexi of the sublist vs. Next we iterate over every element v in vs. For every v we associate v with i in the dictionary.
If there are collisions - a value that occurs twice in L - then the last index will be used.
Solution 2:
You can use:
d = {v: i for i in range(len(L)) for v in L[i]}
output:
{7:2, 8:2, 9:2, 10:0, 11:1, 15:0}
iterating over L using range(len(L)) to access each list and assign each value as the key of the dictionary, and the index of the list as the value.
Post a Comment for "Nested List To Dict With Count Groups"