> > My question is: > > (1) why root is always {}? > > Because that's what you bind it to in the line > > > ... root = root.setdefault(ch,{}) > > See <https://docs.python.org/dev/library/stdtypes.html#dict.setdefault> > for a description of the the setdefault() method.
I'm still confused here. root.setdefault(ch,{}) should return {'a':{}}, right? then this dictionary is referenced by root by "root = root.setdefault(ch,{})". why root is an empty dictionary now? > > > (2) why tree is {'a': {'b': {'c': {}}}}? > > Basically the same answer -- you bind root to the innermost dict and that's > where you insert the ch key on the next iteration of the for loop > . > > (3) why root isn't the same as tree? shouldn't they be the same because > > tree is argument passed as root? > > You should know the answer by now ;) In fact i'm still confused by these answers. Could you please described more? thanks -- https://mail.python.org/mailman/listinfo/python-list