+ 1

Inverting a dictionary with lists as values - Python Help

The function down below, invert a dictionary that has lists as values, I wanted to understand how it works ------------------------ def invert_dict(d): inverted = {} for k in d: for v in d[k]: #This Part inverted.setdefault(v, []).append(k)#This part return inverted ----------------------- This is the part that I didn't get if anyone can explain to me please, i'am beginner : ------------------ for v in d[k]: inverted.setdefault(v, []).append(k) -----------------

8th Aug 2020, 1:17 AM
Louai Belfounes
Louai Belfounes - avatar
1 Réponse
0
I think there is no need of for loop inside for loop inverted.setdefault(v,[]).append(k) its a inbuild condition for inverting ............................................................................. you can reduce for loops def invert_dict(d): inverted = {} for k, v in d.iteritems(): inverted.setdefault(v, []).append(k) return inverted d = {###dictionary contents###} print invert_dict(d)
8th Aug 2020, 10:56 AM
Jenin Koshy
Jenin Koshy - avatar