Zip together each element of one list
<p>Start with a list of strings. Each string will have the same number of characters, but that number is not predetermined, nor is the unrelated total number of strings.</p>

<p>Here is an example:</p>

<pre><code>data = ['ABC', 'EFG', 'IJK', 'MNO']
</code></pre>

<p>My desired final output is something like:</p>

<pre><code>[('A', 'E', 'I', 'M'), ('B', 'F', 'J', 'N'), ('C', 'G', 'K', 'O')]
</code></pre>

<p>My desired output is what I am expecting to see after using <code>zip()</code> in some way. My problem is that I cannot find the right way to zip each element of one array together.</p>

<p>Essentially, I am trying to get the columns out of a group of rows.</p>

<p><strong>What I have tried so far:</strong></p>

<ol>
<li><p>Splitting the data into a two dimensional list: </p>

<p><code>split_data = [list(row) for row in rows]</code></p></li>
</ol>

<p>which gives me:</p>

<pre><code>[['A', 'B', 'C'], ['E', 'F', 'G'], ['I', 'J', 'K'], ['M', 'N', 'O']]
</code></pre>

<ol start="2">
<li><p>Trying to use <code>zip()</code> on that with something like: </p>

<p><code>zip(split_data)</code></p></li>
</ol>

<p>I continue to end up with this:</p>

<pre><code>[(['A', 'B', 'C'],), (['E', 'F', 'G'],), (['I', 'J', 'K'],), (['M', 'N', 'O'],)]
</code></pre>

<p>Obviously, it is zipping each element with nothing, causing it to return the original data tupled with a blank. How can I get <code>zip()</code> to consider each element of <code>data</code> or <code>split_data</code> as a list that should be zipped?</p>

<p>What I need is <code>zip(data[0], data[1], data[2], ...)</code></p>