[Python-ideas] Variations on a loop
Carl Johnson
carl at carlsensei.com
Sat Aug 30 11:48:10 CEST 2008
Here's one way to test if the loop you just came out of was empty:
for item in range(0):
print item
else:
if "item" not in locals():
print "Empty list."
Obviously, this only works if "item" has not been used in the current
scope before. If anyone knows of a more efficient way to check if a
variable name has been used besides using locals(), let me know.
Another way to do it is if you know that some particular value, such
as None, will never appear in your list-like-object you can set item
to that value in advance:
item = None
for item in range(0):
print item
else:
if item is None:
print "Empty list."
Again, this has the limitation that it only works if you can guaranty
that your guard value won't be used by the loop. The advantage is that
you don't have to create locals() and then do a __contains__ on it,
which presumably takes longer than a simple assignment and identity
check.
-- Carl Johnson
More information about the Python-ideas
mailing list