콘텐츠로 건너뛰기

파이썬 리스트 평탄화 방법

CodeMDD.io

Python 내에서 리스트의 리스트를 평탄화하는 방법

데이터 작업을 할 때 종종 데이터를 중첩된 리스트로 가져올 수 있습니다. 리스트를 평탄하게 만드는 것은 파이썬에서 일차원 리스트로 변환하는 일반적인 작업입니다. 리스트의 평탄화는 행렬과 같은 다차원 리스트를 일차원 리스트로 변환하는 것을 의미합니다.

리스트를 평탄하게 하는 것을 잘 이해하기 위해 다음과 같은 수치값의 행렬이 있다고 가정해 보겠습니다:

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

matrix 변수는 네 개의 중첩된 리스트를 포함하는 파이썬 리스트를 담고 있습니다. 각 중첩 리스트는 행을 나타냅니다. 행은 각각 네 개의 항목이나 숫자를 저장합니다. 이제 이 행렬을 다음과 같은 리스트로 바꾸고 싶다고 가정해 보겠습니다:

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

어떻게 하면 행렬을 평탄화하고 위와 같은 일차원 리스트를 얻을 수 있을까요? 이 튜토리얼에서는 파이썬에서 이렇게 작업하는 방법을 배워 보겠습니다.

for 루프를 사용하여 리스트의 리스트를 평탄화하는 방법

파이썬에서 리스트의 리스트를 평탄화하는 방법은 어떻게 될까요? 일반적으로 리스트의 리스트를 평탄화하기 위해 다음 절차를 명시적으로 또는 암시적으로 실행할 수 있습니다:

  1. 평탄화된 데이터를 저장할 새로운 빈 리스트를 생성합니다.
  2. 원래 리스트의 각 중첩 리스트 또는 서브리스트를 반복합니다.
  3. 현재 서브리스트의 각 항목을 평탄화된 데이터 리스트에 추가합니다.
  4. 평탄화된 데이터가 있는 결과 리스트를 반환합니다.

matrix 예제를 사용하여 이러한 단계를 for 루프와 .extend() 메서드를 사용하여 파이썬 코드로 어떻게 변환하는지 살펴보겠습니다:

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

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

이제 다음 코드를 실행하여 함수가 제대로 작동하는지 확인해 보세요:

matrix = [
[9, 3, 8, 3],
[4, 5, 2, 8],
[6, 4, 3, 1],
[1, 0, 4, 5],
]
result = flatten_extend(matrix)
print(result)

이 코드를 실행하면 원하는 결과인 [9, 3, 8, 3, 4, 5, 2, 8, 6, 4, 3, 1, 1, 0, 4, 5]가 출력됩니다.

for 루프와 .extend() 메서드를 사용하여 중첩된 리스트를 평탄화하는 방법을 배웠습니다. 다음으로 파이썬에서 리스트의 리스트를 평탄하게 만드는 또 다른 방법을 알아보겠습니다.