콘텐츠로 건너뛰기

파이썬에서 리스트를 평평하게 만드는 방법

CodeMDD.io

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

데이터 작업을 할 때 때로는 데이터를 중첩된 리스트로 가지고 있을 수 있습니다. 리스트를 평탄화하는 것은 이러한 중첩된 리스트, 예를 들어 행렬을 일차원 리스트로 변환하는 작업을 의미합니다.

리스트를 평탄화하는 방법을 더 잘 이해하기 위해 다음과 같은 숫자 값의 행렬이 있다고 가정해 보겠습니다:

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]

이처럼 행렬을 평탄화하고 위와 같은 일차원 리스트를 얻으려면 어떻게 해야 할까요? 이 튜토리얼에서는 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에서 데이터를 추출하여 평탄화된 데이터를 저장하기 위해 이 리스트를 사용합니다. 그런 다음 matrix의 내부 또는 중첩된 리스트를 반복하는 루프를 시작합니다. 이 예제에서는 현재 중첩된 리스트를 나타낼 때 row라는 이름을 사용합니다.

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

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

이 코드를 실행하면 함수에서 기대하는 대로 작동하는지 확인할 수 있습니다.

리스트 평탄화를 수행하는 몇 가지 방법을 배웠습니다. 사용하는 방법은 사용하는 상황과 성능에 따라 다릅니다. 이러한 방법을 익히고 실제 데이터 작업에 따라 가장 적합한 방법을 선택할 수 있습니다. Python에서 평탄화된 리스트를 얻는다면, 데이터 조작에 유용하게 활용할 수 있습니다.