title: Is this a flake8 false positive, or am I really doing something wrong?
body: <p>I have a function that can be simplified to this code sample:</p>
  
  <pre><code>def test_fun():
      for i in range(17):
          item = i
          print(item)
      for i in range(42):
          items = [[i], [i], [i]]
          flatten_items = [item[0] for item in items]
          print(flatten_items)
  </code></pre>
  
  <p>When I run pyflakes (1.3.0) or flake8 (3.2.0), I get the following report:</p>
  
  <pre><code>/tmp/test.py:7:38: F812 list comprehension redefines 'item' from line 3
  </code></pre>
  
  <p>What I see is that the <code>item</code> variable is indeed used twice, but under different scopes, so it shouldn't be reported, right?</p>
  
  <p>Also, even if there was no second loop, why shouldn't I be allowed to rewrite the <code>item</code> variable, as I've finished working with the one I defined on line 3 since the <code>print</code>?</p>
  
  <p>So, is this a false positive, or I am really writting a very poor piece of code? </p>