Python List Comprehensions - Transposing
<p>I'm just starting out with list comprehensions by the reading the <a href="https://docs.python.org/3.5/tutorial/datastructures.html#nested-list-comprehensions" rel="nofollow">matrix transposing tutorial here</a>. I understand the example, but I'm trying to figure out a way to transpose the matrix without hardcoding the range in.</p>

<pre><code>matrix = [
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12]
]

lcomp = [[row[i] for row in matrix] for i in range(4)]
print(lcomp)

[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]] #result
</code></pre>

<p>Instead of <code>range(4)</code>, I want it to be able to figure out the the max number of elements that the largest nested array has. I tried placing a <code>lambda</code> but kept getting errors from it. Is it possible to do this in a one-liner?</p>

<p>You can use another comprehension!  They're a very powerful tool.</p>

<pre><code>[[row(i) for row in matrix] for i in range(max(len(r) for r in matrix))]
</code></pre>

python matrix list-comprehension