[Python-ideas] Variations on a loop
grosser.meister.morti at gmx.net
Fri Aug 29 15:19:59 CEST 2008
Bruce Frederiksen wrote:
> Bruce Leban wrote:
>> For example:
>> result = ""
>> for x in items:
>> result += str(x)
>> result += ", "
>> result = "no data"
> We already have statements that only apply within loops (break and
> continue), how about some expressions that only apply in for loops:
> 'last' and 'empty':
> for x in items:
> result += str(x)
> if not last:
> result += ', '
> if empty:
> result = "no data"
> -bruce (not to be confused with Bruce :-)
I don't know. I don't like either. What about named loops/loop objects? Using
this you have no need for new keywords:
myloop = for x in items:
result += str(x)
if not myloop.last:
result += ', '
result = 'no data'
However, how to calculate the last property for generators where it might depend
on some side effects if it's really the last item?
Other things would be possible, too:
a = for x in xs:
b = for y in ys:
c = for z in zs:
However, this would increase clutter and might be a bad idea for the same reason
goto is a bad idea. I also would be possible to pass the loop object to another
function which then might call continue/break which changes the controlflow
completely and makes the code very hard to read. So I guess this is a bad idea.
More information about the Python-ideas