title: Passing functions which have multiple return values as arguments in Python
body: <p>So, Python functions can return multiple values. It struck me that it would be convenient (though a bit less readable) if the following were possible.</p>
  
  <pre><code>a = [[1,2],[3,4]]
  
  def cord():
      return 1, 1
  
  def printa(y,x):
      print a[y][x]
  
  printa(cord())
  </code></pre>
  
  <p>...but it's not. I'm aware that you can do the same thing by dumping both return values into temporary variables, but it doesn't seem as elegant. I could also rewrite the last line as "printa(cord()[0], cord()[1])", but that would execute cord() twice.</p>
  
  <p>Is there an elegant, efficient way to do this? Or should I just see that quote about premature optimization and forget about this?</p>