Esmail wrote:
<div class="moz-text-flowed" style="font-family: -moz-fixed">Hello all,

I have a simple question regarding semantics.

Given a list 'li', I can always do this to iterate through all items in
order:

for i in range(0, len(li)):
    print li[i]

Will this always be equivalent to


for i in li:
    print i

I assume it is, and the order will always be the same, or am I mistaken?

Would the 2nd one be considered more Pythonic? (It looks both
clearer and cleaner to me).

Thanks.

Esmail


</div>

The second one will be equivalent if li is really a list. With a few differences, such as:
   1) it's faster
2) it doesn't create an extra temporary list (although on python 3.0, neither will the first one) 3) the subsequent value of i is the last element of the list, rather than the last index in the list
   4) it'll work even if li is later changed to a generator
5) it'll do something useful even if the li is changed to a dictionary or a set, although order isn't guaranteed there
   6) it'll behave differently if the list is changed during the loop

The second one is definitely more pythonic.

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to