On Mon, 27 Mar 2006, Carroll, Barry wrote: > So, what then is the proper use of setdefault()? And, if d.setdefault > does not actually assign a default value for d, is there a way to do > this?
It's a somewhat misleading name, but setdefault a) looks up an entry in a dictionary and c) returns it... but if it's not found, between steps a & c it b) sets the entry to the default value. Think of it as a way to pre-initialize dictionary entries on the fly the first time they're referenced. Here's an example, which looks at a string of text and creates a dictionary of the constituent characters' frequency: >>> freq = {} >>> sampletext = "norwegian blue" >>> for char in sampletext: ... freq[char] = freq.setdefault(char,0)+1 ... >>> freq {'a': 1, ' ': 1, 'b': 1, 'e': 2, 'g': 1, 'i': 1, 'l': 1, 'o': 1, 'n': 2, 'r': 1, 'u': 1, 'w': 1} >>> _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor