Re: Check for dict key existence, and modify it in one step.



rodrigo <rodrigo.cr@xxxxxxxxx> writes:

Im using this construct a lot:

if dict.has_key(whatever):
dict[whatever] += delta
else:
dict[whatever] = 1

I'd prefer:

foo.setdefault(whatever, 0)
foo[whatever] += delta

sometimes even nested:

if dict.has_key(whatever):
if dict[whatever].has_key(someother):
dict[whatever][someother] += delta
else:
dict[whatever][someother] = 1
else:
dict[whatever]={}
dict[whatever][someother] = 1

foo.setdefault(whatever, {})
foo[whatever].setdefault(someother, 0)
foo[whatever] += delta

there must be a more compact, readable and less redundant way to do
this, no?

Hope that helps.

--
\ "I took a course in speed waiting. Now I can wait an hour in |
`\ only ten minutes." -- Steven Wright |
_o__) |
Ben Finney
.