title: Assign two variables from list of tuples in one iteration
body: <p>I have a function <code>foo()</code> that returns a tuple. Let's say <code>('a', 1)</code> 
  I have an iterable <code>a</code> that I want to iterate over and pass every item to that function. 
  At the end I need two lists - <code>r1</code> and <code>r2</code> where <code>r1</code> consists of all the first items in the tuples returned from the function. The second list <code>r2</code> - the result of all the second items in these tuples.</p>
  
  <pre><code>r1 = ['a', 'b', 'c']
  r2 = [1, 2, 3]
  </code></pre>
  
  <p>I don't like this approach too much:</p>
  
  <pre><code>result = [foo(i) for i in a]
  r1 = [i[0] for i in result]
  r2 = [i[1] for i in result]
  </code></pre>