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