Can someone tell me how exactly Python's for loops are implemented? The reason I'm asking this is because I'm getting different behavior in the following two for loops when I expect the same behavior (assuming cases
is just a set of elements):
First for loop:
for case in cases:
blah
Second for loop:
for i in range(len(cases)):
case = cases[i]
blah
I'm running my code in a multi-threaded environment.
Basically, I'm wondering whether Python's for loop's iterating over a set (as in the first for loop) is simply a quickhand way of the second one. What exactly happens when we use the python for loop, and is there any underlying optimization/ implementation that may be causing the behavior difference I'm observing?