파이썬에서 이차원 리스트를 출력할 때, 각 행을 보기 좋게 출력하는 다양한 방법이 있다.
이번 포스팅에서는 대표적인 5가지 방법을 정리해보려고 한다.
1. join
과 map
을 이용한 방법
가장 많이 사용되는 방법 중 하나는 join
과 map
을 이용해 각 행을 문자열로 변환한 후 출력하는 것이다.
for row in distances:
print(' '.join(map(str, row)))
map
함수는 리스트의 각 요소에 str
함수를 적용해 문자열로 변환하고, join
메서드는 이를 공백으로 구분하여 하나의 문자열로 합친다.
2. 언패킹 연산자 *
를 이용한 방법
파이썬의 print
함수는 여러 인수를 받을 때 기본적으로 공백으로 구분하여 출력한다. 이를 이용하면 보다 직관적으로 코드를 작성할 수 있다.
for row in distances:
print(*row)
여기서 *row
는 row
리스트의 모든 요소를 개별 인수로 print
함수에 전달한다.
3. 리스트 컴프리헨션을 이용한 방법
리스트 컴프리헨션을 이용해 각 요소를 문자열로 변환한 후 join
을 사용하는 방법도 있다.
for row in distances:
print(' '.join([str(x) for x in row]))
이 방법은 리스트 컴프리헨션을 통해 각 요소를 문자열로 변환한 새로운 리스트를 생성한 후, 이를 join
메서드로 합친다.
4. f-문자열을 이용한 방법
파이썬 3.6 이상에서는 f-문자열을 이용해 각 요소를 문자열로 변환하는 방법도 있다.
for row in distances:
print(' '.join(f'{x}' for x in row))
이 방법은 f-문자열을 사용해 각 요소를 문자열로 변환한 후 join
메서드로 합친다.
5. str.format
을 이용한 방법
str.format
을 이용해 각 요소를 문자열로 변환하고 join
메서드를 사용할 수도 있다.
for row in distances:
print(' '.join(str(x) for x in row))
이 방법은 str.format
메서드를 사용해 각 요소를 문자열로 변환한 후, 이를 join
메서드로 합친다.
요약
위에서 설명한 모든 방법을 포함한 예제 코드
distances = bfs(graph, n, m)
# 1. Using join and map
for row in distances:
print(' '.join(map(str, row)))
# 2. Using print with unpacking
for row in distances:
print(*row)
# 3. Using list comprehension
for row in distances:
print(' '.join([str(x) for x in row]))
# 4. Using f-strings
for row in distances:
print(' '.join(f'{x}' for x in row))
# 5. Using str.format
for row in distances:
print(' '.join(str(x) for x in row))
개인적인 선호나 코드의 가독성, 일관성 등을 고려해 적합한 방법을 사용하면 된다.