Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 행렬을 세로 방향으로 연결하는 방법

파이썬에서 행렬(리스트의 리스트)을 세로 방향, 즉 열 단위로 연결해야 할 때는 리스트 컴프리헨션(list comprehension)itertools.zip_longest를 함께 사용하면 간단하게 처리할 수 있습니다.


아래는 실제 구현 예시입니다.

예제 코드

from itertools import zip_longest

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

print("The list is : ")
print(my_list)

my_result = ["".join(elem) for elem in zip_longest(*my_list, fillvalue="")]

print("The list after concatenating the column is : ")
print(my_result)

실행 결과

The list is :
[['Hi', 'Rob'], ['how', 'are'], ['you']]
The list after concatenating the column is :
['Hihowyou', 'Robare']

코드 설명

  • 필요한 패키지인 itertools 모듈의 zip_longest 함수를 임포트합니다.

  • 리스트 안에 여러 개의 리스트가 중첩된 형태의 데이터를 정의하고, 이를 콘솔에 출력합니다.

  • 리스트 컴프리헨션을 사용하여 zip_longest(*my_list)로 각 행의 같은 위치에 있는 요소들을 묶습니다. 이때 fillvalue="" 옵션 덕분에 길이가 다른 리스트도 오류 없이 처리되며, 빈 문자열로 부족한 자리가 채워집니다.

  • join() 메서드로 묶인 요소들을 공백 없이 하나의 문자열로 합칩니다.

  • 연결된 최종 결과를 변수에 저장한 뒤, 콘솔에 출력합니다.


이 방식은 각 내부 리스트의 길이가 서로 달라도 zip_longest가 빈 값을 자동으로 채워주기 때문에, 일반적인 zip 함수보다 유연하게 행렬의 열을 세로로 연결할 수 있다는 장점이 있습니다.