Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

재귀를 사용하여 중첩 목록을 병합하는 Python 프로그램

<시간/>

재귀 기법을 사용하여 주어진 중첩 목록을 평면화해야 하는 경우 단순 인덱싱 및 'isinstance' 메서드를 재귀와 함께 사용할 수 있습니다.

재귀는 더 큰 문제의 작은 비트의 출력을 계산하고 이러한 비트를 결합하여 더 큰 문제에 대한 솔루션을 제공합니다.

예시

아래는 동일한 데모입니다 -

def flatten_list(my_list):
   if my_list == []:
      return my_list
   if isinstance(my_list[0], list):
      return flatten_list(my_list[0]) + flatten_list(my_list[1:])
   return my_list[:1] + flatten_list(my_list[1:])
my_list = [[1,2],[3,4], [90, 11], [56, 78], [[34,56]]]
print("The list is :")
print(my_list)
print("The list after flattening is : ")
print(flatten_list(my_list))

출력

The list is :
[[1, 2], [3, 4], [90, 11], [56, 78], [[34, 56]]]
The list after flattening is :
[1, 2, 3, 4, 90, 11, 56, 78, 34, 56]

설명

  • 목록을 매개변수로 사용하는 'flatten_list'라는 메서드가 정의되어 있습니다.
  • 목록의 첫 번째 요소의 데이터 유형을 확인합니다.
  • 목록과 일치하면 첫 번째 요소와 마지막 요소의 두 번째 요소를 연결하여 표시합니다.
  • 이 결과 중첩 목록이 병합됩니다.
  • 그렇지 않으면 첫 번째 요소가 생략되고 목록이 먼저 반전되고 일반 목록이 결합되어 출력으로 반환됩니다.
  • 함수 외부에 중첩 목록이 정의되어 콘솔에 표시됩니다.
  • 매개변수로 목록을 전달하여 메소드를 호출합니다.
  • 출력은 콘솔에 표시됩니다.