파이썬에서 중첩된 리스트를 print 함수로 출력하는 경우 한줄에 모든 요소들이 표시됩니다.

이런 경우 요소가 많은 리스트의경우 한화면에 잘 보이지 않고,
가독성도 좋지 않습니다.

이런 이유로 한줄마다 하나의 요소를 보여주고 싶은 경우가 있는데 이럴경우에는 어떻게 해야하는지 알아보겠습니다.

# for loop

가장 먼저 생각나는 방법일것입니다.

for loop 로 요소를 순회하며 요소를 print 함수로 출력해주면됩니다.

dummy_data = [
    ['1', 'aaa', 444],
    ['2', 'bbb', 333],
    ['3', 'ccc', 222],
    ['4', 'ddd', 111],
]

for x in dummy_data:
    print(x)
['1', 'aaa', 444]
['2', 'bbb', 333]
['3', 'ccc', 222]
['4', 'ddd', 111]

print 함수는 기본적으로 출력후에 개행문자를 추가해줍니다.
=> print(x) == print(x, end=’\n’)

for loop 를 이용하는 방법도 좋지만 print 함수에서 제공하는 기능으로 대체 할 수가 있습니다.

바로 sep 옵션인데요. 여러 요소를 출력하는 경우 sep 인자에 원하는 구분자를 주면
해당 구분자를 요소들 사이사이에 출력해줍니다. ( 기본적으로는 공백(‘ ‘) )

예를들어 아래와같이 여러개의 요소를 출력해보겠습니다.

# print() 함수의 sep 옵션

print('아버지가', '방에', '들어가신다.')
print('아버지가', '방에', '들어가신다.', sep='\n')
아버지가 방에 들어가신다.
아버지가
방에
들어가신다.

결과값에서 볼 수 있듯이 sep 값에 따라 결과가 달라집니다.

이제 리스트의 요소들을 출력해보겠습니다.

print(*dummy_data, sep='\n')
['1', 'aaa', 444]
['2', 'bbb', 333]
['3', 'ccc', 222]
['4', 'ddd', 111]

주의할점은 데이터를 * ( unpacking operator )를 사용해서 unpacking 한 데이터로 전달해야한다는 점이다.
( 언팩킹을 하지 않는경우 그냥 전체 요소를 print 한 경우와 동일하다.)

감사합니다. 😄