<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2015-07-04 0:24 GMT+02:00 Ron Adam <span dir="ltr"><<a href="mailto:ron3200@gmail.com" target="_blank">ron3200@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
On 07/02/2015 02:30 AM, Pierre Quentel wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Iterating on the powers of 2 below N would be done by :<br>
<br>
for i in Range(1, N, lambda x:x*2)<br>
<br>
I haven't seen this discussed before, but I may not have searched enough.<br>
<br>
Any opinions ?<br>
</blockquote>
<br></span>
I'm surprised no one mentioned this!?<br>
<br>
>>> for i in map(lambda x:2**x, range(1, 10)):<br>
...     print(i)<br>
...<br>
2<br>
4<br>
8<br>
16<br>
32<br>
64<br>
128<br>
256<br>
512<br></blockquote><div><br></div><div>It's not the same as Range(1, N, lambda x:x*2) : your loop is executed a fixed number of times (10 here), regardless of the values produced, but Range stops when the value is over N<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
It looks like map returns a map object which is a generator.  You just need to use the power of 2 formula rather than accumulate it.  That's actually more flexible solution as your range can start some place other than 1.<br>
<br>
>>> for i in map(lambda x:2**x, range(5, 10)):<br>
...     print(i)<br>
...<br>
32<br>
64<br>
128<br>
256<br>
512<br>
<br>
<br>
Cheers,<br>
   Ron<div class="HOEnZb"><div class="h5"><br>
<br>
_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" target="_blank">http://python.org/psf/codeofconduct/</a><br>
</div></div></blockquote></div><br></div></div>