예제가 있는 Python Lambda 함수

게시 됨: 2022-06-04

목차

파이썬 — 소개

Python은 매우 인기 있는 범용 프로그래밍 언어입니다. 상당한 들여쓰기를 사용하여 코드 가독성을 강조하는 해석된 고급 언어입니다. Python은 프로그래머가 모든 규모의 프로젝트에 대해 깨끗하고 논리적인 코드를 작성하는 데 사용됩니다.

Python은 Guido Van Rossum에 의해 ABC 프로그래밍 언어의 후계자로 1980년대에 구상되었습니다. 그 이후로 Python은 다양성으로 인해 인기 있는 프로그래밍 언어로 남아 있습니다.

기능 — 소개

함수는 호출될 때 작동하는 코드 블록으로 프로그램에서 n번 호출할 수 있습니다. 그것들은 구조화된 코드 문이며 특정 기능을 수행하며 언제든지 사용할 수 있습니다. 기능은 기본적으로 다음과 같이 분류됩니다.

  • 사용자 정의 기능(USF) — 프로그래머의 요구 사항에 따라 변경할 수 있는 사용자 정의 기능.
  • 내장 함수(BIF) — 사용자 정의할 수 없고 사용 가능한 방식으로 사용해야 하는 함수입니다.

upGrad에서 온라인으로 데이터 과학 과정 배우기

파이썬 람다 함수

Python Lambda 함수는 명확한 이름이 없기 때문에 본질적으로 익명입니다. def 함수는 파이썬에서 일반 함수를 나타내는 데 사용됩니다 . 한편, Lambda 키워드 는 익명의 Python 함수를 정의하는 데 사용됩니다.

Lambda 함수는 여러 인수를 사용할 수 있지만 표현식은 하나만 사용할 수 있는 작은 함수입니다. 또한 일반 Python 함수보다 더 제한적이지만 간결한 구문을 가지고 있습니다. 람다 함수는 map (), filter (), 그리고 reduce () 함수 와 함께 1994년 파이썬 언어에 추가되었습니다 .

미국 확인 - 데이터 과학 프로그램

데이터 과학 및 비즈니스 분석 전문 인증 프로그램 데이터 과학 석사 데이터 과학 석사 데이터 과학 고급 인증 프로그램
데이터 과학의 이그 제 큐 티브 PG 프로그램 파이썬 프로그래밍 부트캠프 비즈니스 의사 결정을 위한 데이터 과학 전문 인증 프로그램 데이터 과학 고급 프로그램

익명 함수를 정의하려면 def 가 일반 함수에 사용되는 것처럼 람다 키워드를 사용해야 합니다. Python에서 정의된 익명 함수에는 세 부분이 있습니다.

  • 키워드 람다
  • 매개변수 또는 바운드 변수
  • 기능 본문

통사론

람다 함수의 구문은 다음과 같습니다.

람다 p1, p2: 식

여기서 p1과 p2는 매개변수입니다. 람다 함수에 매개변수를 추가하는 데에는 제한이 없습니다. 원하는 만큼 추가할 수 있습니다. 그러나 람다 함수는 구문상 하나의 표현식으로 제한됩니다.

Python의 람다 함수 예:

실시예 1

x = "람다 함수"

# 람다가 인쇄할 패스를 얻습니다.

(람다 x : print(x))(x)

산출

람다 함수

실시예 2

x = 람다 a : a + 10

인쇄(x(5))

산출

15

학습자는 또한 다음을 읽습니다. 무료로 Python 온라인 학습

일반 함수와 람다 함수의 차이점

람다 함수는 일반 함수와 구문상의 차이점이 있습니다.

  • 본문에는 표현식만 사용하고 not 문만 사용합니다. pass, assert, return 또는 raise와 같은 명령문이 사용되면 출력에 SyntaxError가 표시됩니다.

예시

>>> (람다 x: 주장 x == 2)(2)

파일 “<입력>”, 1행

(람다 x: 주장 x == 2)(2)

^^

SyntaxError: 잘못된 구문

  • 람다 함수는 단일 표현식으로만 존재할 수 있습니다. 여러 문자열을 사용하여 표현식이 본문 전체에 퍼져 있더라도 단일 표현식으로만 남을 수 있습니다.

:

>>>(람다 x:

… (x % 2 및 '홀수' 또는 '짝수'))(3)

'이상한'

람다 인수가 홀수이면 코드는 홀수 문자열을 반환하고 그렇지 않으면 짝수를 반환합니다. 코드는 괄호 안에 있는 것처럼 두 줄에 걸쳐 있지만 단일 표현식으로 유지됩니다.

  • 람다 함수는 유형 주석을 지원하지 않습니다. 람다 구문에 주석을 추가하면 구문 오류가 발생합니다.
  • IIFE 또는 즉시 호출 함수 표현식은 정의되는 즉시 실행되는 함수입니다. 자체 실행 익명 기능이라고도 합니다. IIFE는 람다 함수가 정의된 대로 호출할 수 있으므로 람다 함수의 직접적인 결과입니다.

이제 일반 함수와 람다 함수의 주요 차이점을 살펴보겠습니다.

(원천)

Lambda 함수 – 찬반 양론

장점

  • 코드를 더 읽기 쉽게 만듭니다.
  • 한 번 사용하는 기능에 이상적입니다.
  • 이해하기 쉽고 간단한 논리적 설명에 사용할 수 있습니다.

단점:

  • 여러 개의 독립 표현식을 수행할 수 없습니다.
  • 코드가 일반(def) 함수의 한 줄 이상에 걸쳐 있는 경우 람다 함수를 사용하는 것은 이상적이지 않습니다.
  • 모든 입력, 출력 및 작업은 일반 함수처럼 독스트링으로 설명할 수 없습니다.

어디에서 람다를 사용합니까?

일반 def 함수와 람다 함수에는 주요 차이점이 있지만 내부적으로는 내부적으로 처리됩니다.

  • Python에서 람다 함수의 일반적인 사용은 함수형 프로그래밍입니다. 함수형 프로그래밍에서 람다를 사용하여 다른 함수에 대한 매개변수로 함수를 제공할 수 있습니다.
  • 함수를 지정하기 위해 줄 수를 줄여야 하는 경우 람다를 사용하는 것이 좋습니다.
  • Lambda는 map(), reduce() 등과 같은 고차 함수에도 사용됩니다.
  • UI 프레임워크 이벤트에 대한 응답은 람다 함수를 사용하여 추적할 수 있습니다.

람다 함수 사용을 삼가야 할 곳은 어디입니까?

  • 복잡한 람다 함수를 작성하는 것은 해독하기 어렵기 때문에 좋은 습관이 아닙니다.
  • 반복 작업에 람다 함수를 사용하지 마십시오.
  • 코드가 Python 스타일 가이드(PEP8)를 따르지 않는 경우.

Lambda 함수는 일반 함수와 똑같이 테스트됩니다. 이를 위해 unittest와 doctest를 모두 사용할 수 있습니다.

인기 있는 미국 - 데이터 과학 기사 읽기

자격증이 있는 데이터 분석 과정 인증이 포함된 JavaScript 무료 온라인 과정 가장 많이 묻는 Python 인터뷰 질문 및 답변
데이터 분석가 인터뷰 질문 및 답변 미국 최고의 데이터 과학 직업 옵션 [2022] SQL 대 MySQL – 차이점은 무엇입니까
데이터 유형에 대한 궁극적인 가이드 미국의 Python 개발자 급여 미국 데이터 분석가 급여: 평균 급여

filter()가 있는 Lambda 함수

Filter()는 내장 Python 함수이며 인수로 나열됩니다. 필터()는 모든 반복 가능한 항목이 목록에 있을 때 사용되며, 함수가 true인 항목을 포함하는 다른 목록이 반환됩니다.

:

# 설명할 파이썬 코드

# 람다()로 필터()

리 = [5, 7, 22, 97, 54, 62, 77, 23, 73, 61]

final_list = list(filter(lambda x: (x%2 != 0) , li))

인쇄(최종 목록)

산출:

[5, 7, 97, 77, 23, 73, 61]

(원천)

:

# 목록에서 짝수 항목만 필터링하는 프로그램

my_list = [1, 5, 4, 6, 8, 11, 3, 12]

new_list = list(filter(lambda x: (x%2 == 0) , my_list))

인쇄(new_list)

산출

[4, 6, 8, 12]

map()이 있는 람다 함수

map 함수는 모든 항목이 목록에 있을 때 사용되며 각 항목에 대해 해당 함수에서 반환된 항목과 함께 목록이 반환됩니다.

: 목록에 있는 각 항목의 값을 두 배로 하려면 코드는 다음과 같습니다.

my_list = [1, 5, 4, 6, 8, 11, 3, 12]

new_list = list(map(lambda x: x * 2 , my_list))

인쇄(new_list)

산출:

[2, 10, 8, 12, 16, 22, 6, 24]

: 목록의 모든 숫자를 세제곱하려면 코드는 다음과 같습니다.

list_1 = [1,2,3,4,5,6,7,8,9]

입방체 = map(람다 x: pow(x,3), list_1)

목록(입방체)

산출:

[1, 8, 27, 64, 125, 216, 343, 512, 729]

reduce() 함수가 있는 Lambda 함수

Python의 reduce() 함수는 목록과 인수입니다. 반복 가능하고 새로운 축소 목록을 반환하기 위해 호출됩니다. 더하기 기능과 다소 유사합니다.

실시예 1

참고: 이 예제는 functools 라이브러리에서 가져온 것입니다.

목록의 합계를 얻으려면 코드 는 다음과 같습니다.

# 설명할 파이썬 코드

# 람다()로 줄이기()

# 리스트의 합을 얻기 위해

functools에서 가져오기 줄이기

리 = [5, 8, 10, 20, 50, 100]

합계 = 감소((람다 x, y: x + y), li)

인쇄(합)

산출:

193

결론

파이썬에서 람다 함수를 사용하는 것은 오랫동안 프로그래머들 사이에서 논쟁의 여지가 있는 주제였습니다. 람다가 내장 함수, 목록 이해 및 표준 라이브러리로 대체될 수 있는 것은 사실이지만 람다 함수에 대한 이해도 필요합니다. 프로그래밍의 기본 원리를 이해하고 더 나은 코드를 작성하는 데 도움이 됩니다.

개인적으로 람다 함수를 사용하지 않더라도 다른 사람의 프로그램에서 람다 함수를 접하게 되는 경우가 있을 수 있습니다. 따라서 어쨌든 람다 함수에 대한 기본 지식이 있는 것이 좋습니다.

본격적인 Python을 배우고 데이터 과학 및 비즈니스 분석 분야에서 경력을 향상시키려는 경우 upGrad의 데이터 과학 및 비즈니스 분석 분야 온라인 전문 인증 프로그램( 미국 명문 대학교 – 메릴랜드 대학교)이 최선의 선택입니다.

이 프로그램은 상위 100개 글로벌 대학 중 한 곳에서 공부하고 메릴랜드 스미스로부터 수료증을 취득하여 해당 분야에서 성공할 가능성을 높일 수 있는 기회를 제공합니다. 9개월 과정으로 300명 이상의 고용 파트너에 대한 액세스, 신입생을 위한 인터뷰 기회 보장, 6번의 멘토링 통화가 제공됩니다.

파이썬에서 데코레이터는 무엇입니까?

한 함수의 인수를 취하고 다른 함수를 반환하는 Python의 함수를 데코레이터라고 합니다. 데코레이터 구문으로 표시됩니다. 데코레이터는 람다 함수에 적용할 수 있지만 데코레이터 구문에는 적용할 수 없습니다. 일반적으로 디버깅 목적으로 구현됩니다. 또는 람다 함수를 데코레이터로 사용할 수 있지만 권장하지 않습니다.

Python Lambda 함수의 인수는 무엇입니까?

일반 def 함수와 같은 Lambda 함수는 인수를 전달하는 다양한 방법을 지원합니다. 여기에는 다음이 포함됩니다. 키워드 전용 인수 키워드 인수/ 명명된 인수 Varargs/ 인수의 변수 목록 키워드 인수의 변수 목록.

Python Lambda 함수의 클로저란 무엇입니까?

클로저 또는 어휘 클로저는 매개변수를 제외한 모든 자유 변수가 함수의 둘러싸는 범위에서 특정 값에 바인딩되는 함수입니다. 클로저는 어디에서나 호출할 수 있습니다. 일반 def 함수와 같은 Lambda 함수는 클로저가 될 수 있습니다.