파이썬에서 행렬(리스트의 리스트)을 문자열로 변환해야 하는 경우, 간단한 리스트 컴프리헨션(list comprehension)과 join 메서드를 함께 사용하면 손쉽게 처리할 수 있습니다.
예제 코드
아래는 행렬을 문자열로 변환하는 과정을 보여주는 예제입니다.
my_list = [[1, 22, "python"], [22, "is", 1], ["great", 1, 91]]
print("The list is :")
print(my_list)
my_list_1, my_list_2 = ",", " "
my_result = my_list_2.join([my_list_1.join([str(elem) for elem in sub]) for sub in my_list])
print("The result is :")
print(my_result)실행 결과
The list is : [[1, 22, 'python'], [22, 'is', 1], ['great', 1, 91]] The result is : 1,22,python 22,is,1 great,1,91
코드 설명
먼저 리스트 안에 리스트가 포함된 2차원 리스트(행렬)를 정의하고, 콘솔에 출력합니다.
두 개의 변수에 각각 콤마(
,)와 공백() 문자열을 할당합니다. 콤마는 행렬의 각 행 내부 요소를 연결하는 구분자로, 공백은 각 행과 행 사이를 연결하는 구분자로 사용됩니다.리스트 컴프리헨션과 join 메서드를 활용해 행렬의 모든 요소를 순회하면서, 먼저 각 행의 요소들을
str()함수로 문자열로 변환한 뒤 콤마로 연결합니다. 이후 각 행 결과를 공백으로 다시 연결하여 하나의 문자열을 완성합니다.이렇게 생성된 최종 문자열은 변수에 할당됩니다.
마지막으로 해당 결과가 콘솔에 출력됩니다.
참고 사항
join 메서드는 문자열만 연결할 수 있기 때문에, 행렬에 정수나 실수 등 숫자형 데이터가 포함되어 있다면 위 예제처럼 반드시 str(elem)을 통해 문자열로 변환한 후 결합해야 합니다. 이 방법은 중첩 반복문을 사용하는 것보다 코드가 간결하고 파이썬다운(Pythonic) 스타일이라는 장점이 있습니다.