콘텐츠로 건너뛰기

이중 리스트를 평탄화하는 방법을 손쉽게 배우세요.

CodeMDD.io

Python 리스트에 있는 리스트 펼치기 (flatten)

for 루프를 사용하여 리스트 펼치기

Python에서 리스트를 펼치는 공통 작업은 다차원 리스트를 일차원 리스트로 변환하는 것입니다. 이번 튜토리얼에서는 Python에서 이 작업을 어떻게 수행하는지 알아보겠습니다.

다차원 리스트를 펼치는 것은 다음과 같은 행렬이라는 예를 가지고 더욱 설명해 보겠습니다:

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

위의 matrix 변수는 네 개의 중첩된 리스트를 포함하는 Python 리스트입니다. 각 중첩된 리스트는 행을 나타냅니다. 행은 각각 네 개의 아이템이나 숫자를 저장합니다. 이제 이 행렬을 다음과 같은 리스트로 변환하고 싶다고 가정해 보겠습니다:

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

위와 같은 행렬을 어떻게 평활화하고, 위와 같은 일차원 리스트를 얻을 수 있을까요? 이 튜토리얼에서는 Python에서 어떻게 이 작업을 수행하는지 알아보겠습니다.

for 루프를 사용하여 리스트 펼치기

Python에서 리스트를 어떻게 평활화할까요? 일반적으로 리스트를 평활화하기 위해 다음과 같은 단계를 명시적이거나 암묵적으로 실행할 수 있습니다:

  1. 평광화된 데이터를 저장하기 위한 새로운 빈 리스트를 만드세요.
  2. 원본 리스트의 각 중첩된 리스트 또는 서브리스트반복합니다.
  3. 현재 서브리스트의 각 아이템평활화된 데이터 리스트에 추가합니다.
  4. 평활화된 데이터를 포함한 결과 리스트를 반환합니다.

matrix 예제를 계속 진행하면서 for 루프와 .extend() 메소드를 사용하여 이러한 단계를 어떻게 Python 코드로 변환할 수 있는지 살펴보겠습니다:

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

flatten_extend() 함수 내부에서 먼저 flat_list라는 새로운 빈 리스트를 만듭니다. 이 리스트는 데이터를 추출한 후 평활화된 데이터를 저장하는 데 사용됩니다. 그런 다음 matrix에서 중첩된 리스트를 반복하기 위해 루프를 시작합니다. 이 예제에서는 현재 중첩된 리스트를 나타내는 row라는 이름을 사용합니다.

이제 해당 코드를 실행하여 함수가 기능을 잘 수행하는지 확인해 보세요.