title: What's the difference?< for item in list> and <for i in range(len(list))>
body: <pre><code>&gt;&gt;&gt; n = [1, 2, 3]
  &gt;&gt;&gt; for item in n:
  ...     item *= 2
  ...
  &gt;&gt;&gt; print n
  [1, 2, 3]
  </code></pre>
  
  <p>I expect the result of the above code to be [2, 4, 6], While obviously it's not. 
  Then I tried <code>for i in range(n)</code> as follows</p>
  
  <pre><code>&gt;&gt;&gt; n = [1, 2, 3]
  &gt;&gt;&gt; for i in range(len(n)):
  ...     n[i] *= 2
  ... 
  &gt;&gt;&gt; 
  &gt;&gt;&gt; n
  [2, 4, 6]
  </code></pre>
  
  <p>This seems OK. 
  And my question is that, what's the essential difference between these two <code>for</code> loop method? What cause the unexpected result above?</p>