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

재귀를 사용하지 않고 목록을 병합하는 Python 프로그램

<시간/>

재귀 기법을 사용하지 않고 목록을 평면화해야 하는 경우 람다 함수, 'sum' 방법, 'map' 방법 및 'isinstance' 방법을 사용할 수 있습니다.

목록은 이기종 값(즉, 정수, 부동 소수점, 문자열 등과 같은 모든 데이터 유형의 데이터)을 저장하는 데 사용할 수 있습니다.

'isinstance' 메소드는 주어진 매개변수가 특정 데이터 유형에 속하는지 여부를 확인합니다.

익명 함수는 이름 없이 정의된 함수입니다. 일반적으로 파이썬에서 함수는 'def' 키워드를 사용하여 정의하지만 익명 함수는 'lambda' 키워드를 사용하여 정의합니다. 단일 표현식을 사용하지만 여러 인수를 사용할 수 있습니다. 표현식을 사용하고 그 결과를 반환합니다.

map 함수는 주어진 함수/작업을 iterable의 모든 항목(예:목록, 튜플)에 적용합니다. 결과로 목록을 반환합니다.

'sum' 메서드는 iterable에 있는 숫자 값을 추가합니다.

예시

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

<미리>my_list =[[[11,[[32]],[[[53]]]],[[64],75]], [[6, 89, 99]]]flattened_list =람다 my_list:합계 (map(flattened_list,my_list),[]) if isinstance(my_list,list) else [my_list]print("원래 목록은 다음과 같습니다. ")print(my_list)print("평평한 목록은 다음과 같습니다.")print(flattened_list( my_list))

출력

원래 목록은 다음과 같습니다.[[[11, [[32]], [[[53]]]], [[64], 75]], [[6, 89, 99]]]평평한 목록 입니다:[11, 32, 53, 64, 75, 6, 89, 99]

설명

  • 중첩 목록이 정의되어 콘솔에 표시됩니다.
  • 'sum' 방식을 사용하여 요소를 합산하고, 이는 'map' 방식을 사용하여 모든 요소에 적용됩니다.
  • 이 연산의 결과는 변수에 할당됩니다.
  • 콘솔에 출력으로 표시됩니다.