[Tutor] Re: Comparing lines in two files, writing result into a third file

Jeff Shannon jeff@ccvcorp.com
Mon Apr 28 13:19:10 2003


pan@uchicago.edu wrote:

>1) Use the built-in .setdefault() function of a dict for the folloing action:
>
>    if d.has_key(num): d[num] += 1   # <- increment value, or
>    else: d[num] = 1                 # <- create a new key
>

Even without using setdefault(), there's a fairly standard
simplification of this relatively common idiom:

d[key] = d.get(key, 0) + 1

The get() dictionary method returns the value associated with key if it
exists, or the second parameter if it doesn't. This effectively gives
you a default value for the dictionary. (I suspect that setdefault()
would simply reroute all dict retrievals to an appropriately-constructed
get() call, or the equivalent thereof...)

Jeff Shannon
Technician/Programmer
Credit International