WjExplor Story

리스트 중첩 본문

Python/Python : Code Study

리스트 중첩

더블유제이플로어 2025. 9. 25. 23:32

문제 13. 리스트 중첩

다음 2차원 리스트에서 모든 원소를 하나의 리스트로 합치세요

matrix = [[1, 2], [3, 4], [5, 6]]

Q. 대체 이건 어디부터 시작해야하나?

 
A. 가장 직관적으로 중첩된 for 루프를 사용해보자.

1. 중첩된 `for` 루프 사용 (가장 기본적인 방법)
이 방법은 2차원의 리스트의 각 하위 리스트(sublist)를 순회하고, 그 하위 리스트의 각 원소를 다시 순회하면서 새로운 리스트에 추가하는 방법이다.

즉, 모든 원소를 불러와서 하나씩 저장하는 for문을 만들어보자.
matrix = [[1, 2], [3, 4], [5, 6]]

matrix_list = []  # 합쳐진 원소들을 담을 빈 리스트를 만듭니다.
for sublist in matrix:
  # 각 하위 리스트(sublist)의 원소(item)를 순회합니다.
  for item in sublist:
    # 각 원소를 새로운 리스트에 추가한다.
    matrix_list.append(item)
print(matrix_list)
2. 리스트 컴프리헨션 사용 (더 파이썬스러운 방법)

위의 중첩된 `for` 루프를 한 줄로 압축한 것이 바로 **중첩된 리스트 컴프리헨션** 이다.
matrix = [[1, 2], [3, 4], [5, 6]]

matrix_list = [item for sublist in matrix for item in sublist]
print(matrix_list)
* [item for sublist in matrix item in sublist] : for 루프의 순서와 동일하게 matrix 에서 sublist 를 가져오고, 그 sublist 에서 item 을 가져와 item 을 새로운 리스트에 추가하는 의미이다.

파이썬에서는 보통 두 번째 리스트 컴프리헨션 방법을 선호한다.