Vertical Concatenation in Matrix in Python

Vertical concatenation in Python matrix operations involves combining elements from corresponding positions across different rows. This creates new strings by joining elements column-wise rather than row-wise.

Using zip_longest() for Vertical Concatenation

The zip_longest() function from the itertools module handles matrices with unequal row lengths by filling missing values ?

from itertools import zip_longest

matrix = [["Hi", "Rob"], ["how", "are"], ["you"]]

print("The matrix is:")
print(matrix)

result = ["".join(elem) for elem in zip_longest(*matrix, fillvalue="")]

print("The matrix after vertical concatenation:")
print(result)
The matrix is:
[['Hi', 'Rob'], ['how', 'are'], ['you']]
The matrix after vertical concatenation:
['Hihowyou', 'Robare']

How It Works

The process involves several key steps:

  • The *matrix unpacks the matrix rows as separate arguments to zip_longest()

  • zip_longest() groups elements by column position: ("Hi", "how", "you") and ("Rob", "are", "")

  • fillvalue="" handles missing elements in shorter rows

  • "".join(elem) concatenates each column group into a single string

Alternative Approach Using zip()

For matrices with equal row lengths, you can use the simpler zip() function ?

matrix = [["Hi", "Rob"], ["how", "are"], ["you", "today"]]

print("The matrix is:")
print(matrix)

result = ["".join(column) for column in zip(*matrix)]

print("Vertical concatenation result:")
print(result)
The matrix is:
[['Hi', 'Rob'], ['how', 'are'], ['you', 'today']]
Vertical concatenation result:
['Hihowyou', 'Robaretoday']

Comparison

Method Handles Unequal Rows? Best For
zip_longest() Yes Irregular matrices
zip() No Regular matrices (faster)

Conclusion

Use zip_longest() with fillvalue for matrices with unequal row lengths. For regular matrices, zip() provides a simpler and faster solution for vertical concatenation.

Updated on: 2026-03-25T19:09:07+05:30

496 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements