How to transpose a list of lists with Python?

Sometimes, we want to transpose a list of lists with Python.

In this article, we’ll look at how to transpose a list of lists with Python.

How to transpose a list of lists with Python?

To transpose a list of lists with Python, we can use the map function with the itertools.zip_longest method.

itertools.zip_longest lets us transpose any nested arrays including jagged ones.

For instance, we write:

import itertools

l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
t = list(map(list, itertools.zip_longest(*l, fillvalue=None)))
print(t)

We call map with list and the array created by itertools.zip_longest which takes the item from each nested array and returned.

fillvalue is set to None so that lists that are shorter than the longest one in the list will have None added to them so that they match the length of the longest list.

Then we call list to convert the returned map with the transposed nested lists back to a nested list.

Therefore, t is [[1, 4, 7], [2, 5, 8], [3, 6, 9]].

Conclusion

To transpose a list of lists with Python, we can use the map function with the itertools.zip_longest method.

itertools.zip_longest lets us transpose any nested arrays including jagged ones.