콘텐츠로 건너뛰기

파이썬에서 리스트 펼치기 방법

CodeMDD.io

Python List Flatten: 리스트 펼치기

데이터 작업을 할 때, 종종 데이터를 중첩된 리스트 형태로 가지고 있을 수 있습니다. 이 경우, 파이썬에서는 이러한 데이터를 펼치는(flatten) 작업을 수행해야 합니다. 리스트의 펼치기는 행렬과 같은 다차원 리스트를 일차원 리스트로 변환하는 작업입니다.

리스트의 펼치기를 설명하기 위해 다음과 같은 숫자 값을 가진 행렬이 있다고 가정해봅시다:

matrix = [
[9, 3, 8, 3],
[4, 5, 2, 8],
[6, 4, 3, 1],
[1, 0, 4, 5],
]
[9, 3, 8, 3, 4, 5, 2, 8, 6, 4, 3, 1, 1, 0, 4, 5]

이처럼 행렬을 펼치고 위와 같은 일차원 리스트를 얻는 방법은 무엇일까요? 이 튜토리얼에서는 파이썬에서 이 작업을 어떻게 수행하는지 알아보겠습니다.

for 루프로 리스트 펼치기

파이썬에서 리스트의 중첩된 리스트를 어떻게 펼칠 수 있을까요? 일반적으로 리스트의 중첩된 리스트를 펼치려면, 다음의 단계를 명시적으로 또는 암시적으로 수행할 수 있습니다:

  1. 평탄화된 데이터를 저장할 새로운 빈 리스트를 생성합니다.
  2. 원본 리스트의 각 중첩된 리스트 또는 하위 리스트를 **반복(iterate)**합니다.
  3. 현재 하위 리스트에서 각 아이템을 평탄화된 데이터 리스트에 추가합니다.
  4. 결과로 얻어진 평탄화된 리스트를 반환합니다.

matrix 예제를 계속해서 사용하여 다음과 같은 단계를 파이썬 코드로 어떻게 표현할 수 있는지 알아보겠습니다:

def flatten_extend(matrix):
flat_list = []
for row in matrix:
flat_list.extend(row)
return flat_list

flatten_extend() 내부에서 우선 flat_list라는 새로운 빈 리스트를 생성합니다. matrix에서 데이터를 추출할 때 이 리스트에 평탄화된 데이터를 저장하는 데 사용할 것입니다. 그런 다음, matrix의 내부 또는 중첩된 리스트를 반복하기 위해 루프를 시작합니다. 여기서는 현재 중첩된 리스트를 나타내는 이름으로 row를 사용합니다.

이제 다음 코드를 실행해서 함수가 작업을 수행하는지 확인해보세요.