리스트 컴프리헨션을 사용하지 않고 선언
squared_numbers = []
for x in range(10):
squared_numbers.append(x**2)
리스트 컴프리헨션을 사용한 선언
squared_numbers = [x**2 for x in range(10)]
List Comprehension 을 사용하면 위와 같이 상대적으로 코드가 직관적이고 간결해진다.
리스트 컴프리헨션으로 초기화 하는 과정은 간단하게 생각하면 초기화할 값 + 반복문으로 구성된다고 보면된다.
이제 리스트 컴프리헨션을 사용하여 그래프 구현에 자주 사용되는 자료구조들을 선언해보자.
# 5개 노드의 인접 노드 정보를 담을 인접 리스트
SIZE = 5
adjList = [[] for _ in range(SIZE)]
print(adjList)
"""
[[],
[],
[],
[],
[]]
"""
언제 사용하나?
장점
단점
이제 리스트 컴프리헨션을 이용하여 5x7 Matrix를 생성해보자.
# 0으로 초기화 된 5x7 Matrix 생성
ROW_SIZE = 5
COL_SIZE = 7
adjMatrix = [[0 for _ in range(COL_SIZE)] for _ in range(ROW_SIZE)]
print(adjMatrix)
"""
[[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0]]
"""
보기 좋게 표현해보면 아래와 같은 테이블이 만들어진다고 볼 수 있다.
언제 사용하나?
장점
단점