Thomas Lehmann wrote:
In C++, programming STL you will use the insert method which always
provides a position and a flag which indicates whether the position
results from a new insertion or an exisiting element. Idea is to have
one search only.
<code>
if data.has_key(key):
value = data[key]
</code>
But this does mean (does it?) that the dictionary is searched two
times! If so, can somebody show me how to do this in one step?
To get almost the same result (assuming value is already loaded):
value = data.get(key, value)
Otherwise, as others have said:
if key in data:
value = data[key]
The form:
try:
value = data[key]
except KeyError:
pass
works, but is not terribly efficient unless failures are rare.
And this is a micro-optimization, measure before changing your
program structure away from the clearest code you can write.
--Scott David Daniels
scott.dani...@acm.org
--
http://mail.python.org/mailman/listinfo/python-list