title: Understanding the map function
body: <p>The Python 2 documentation says:</p>
  <blockquote>
  <h3><a href="https://docs.python.org/2.7/library/functions.html#map" rel="nofollow noreferrer">Built-in Functions: <code>map(function, iterable, ...)</code></a></h3>
  <p>Apply function to every item of iterable and return a list of the
  results. If additional iterable arguments are passed, function must
  take that many arguments and is applied to the items from all
  iterables in parallel.</p>
  <p>If one iterable is shorter than another it is assumed to be extended
  with None items.</p>
  <p>If function is <code>None</code>, the identity function is assumed; if there are
  multiple arguments, <code>map()</code> returns a list consisting of tuples
  containing the corresponding items from all iterables (a kind of
  transpose operation).</p>
  <p>The iterable arguments may be a sequence or any iterable object; the
  result is always a list.</p>
  </blockquote>
  <p>What role does this play in making a Cartesian product?</p>
  <pre><code>content = map(tuple, array)
  </code></pre>
  <p>What effect does putting a tuple anywhere in there have? I also noticed that without the map function the output is <code>abc</code> and with it, it's <code>a, b, c</code>.</p>
  <p>I want to fully understand this function. The reference definitions is also hard to understand. Too much fancy fluff.</p>