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 - [email protected]
http://mail.python.org/mailman/listinfo/tutor