2022-10-11 20:27:42

코딩 테스트 문제들을 풀다 보면, 0으로 채워진 리스트를 만들어야 하는 경우가 많습니다. 보통 저는 이런 경우 numpy 라이브러리를 사용하는데, 코딩 테스트 환경에서는 외부 라이브러리를 사용하지 못하는 경우가 대부분인 것으로 알고 있습니다. 이런 경우에는 for문과 파이썬 리스트 자료형을 활용하여 1차원 리스트, 2차원 리스트를 만들어야 합니다. 

 

0으로 채워진 1차원 리스트 만들기

a = []
for i in range(5):
    a.append(0)

print(a)

 

 

위와 같이 코드를 작성하면, 5개의 0을 요소로 가진 1차원 리스트 a가 생성됩니다. 그런데 리스트 내포(list comprehensions)라는 기법을 활용하면 단 한 줄로 1차원 리스트를 생성할 수 있습니다. 참고로 comprehension이라는 영어 단어에는 "포함, 압축"이라는 의미가 포함되어 있습니다. 리스트 내포의 문법은 다음과 같습니다. 

 

리스트명 = [표현식 for 반복자 in 반복할 것] 

 

리스트 내포를 활용하여 1차원 리스트를 만들어보겠습니다.

 

a = [0 for i in range(5)]

 

코드가 아주 간결해졌죠? 

 

 

0으로 채워진 2차원 리스트 만들기

2차원 리스트를 생성하기 위해서는 역시 이중 for문을 사용해야 합니다.  

 

a = []
for i in range(4):
    row = []
    for j in range(5):
        row.append(0)

    a.append(row)

print(a)

 

 

그런데 너무 길죠. 역시 리스트 내포를 사용하면 한 줄로 리스트 생성을 완료할 수 있습니다. 

 

a = [[0 for j in range(5)] for i in range(4)]
print(a)