python 익명 함수와 삼원 연산 학습 노트
익명 함수는 디스플레이가 필요 없는 지정한 함수 이름입니다.
먼저 코드 한 줄을 보십시오.
def calc(x,y):
return x*y
print(calc(2,3))
#
calc = lambda x,y:x*y
print(calc(2,3))
너는 아마 이 물건을 사용하면 털이 있는 것이 편리하지 않다고 말할 것이다.허허, 만약 이렇게 사용한다면 확실히 모선 개선은 없지만 익명 함수는 주로 다른 함수와 조합하여 사용하는 것이다. 다음과 같다.
res = map(lambda x:x**2,[1,2,3,4,5])
print(list(res))
# :
# [1, 4, 9, 16, 25]
for i in res:
print(i)
# :
# 1
# 4
# 9
# 16
# 25
익명 함수의 역할:1, 코드 절약
2, 고급
lambda 표현식
lambda 원형: lambda 매개 변수: 조작 (매개 변수)
lambda 함수도 익명 함수라고 하는데 구체적인 명칭이 없는 함수이다. 그는 일방 함수를 신속하게 정의하여 함수가 필요한 곳에 사용할 수 있도록 허락한다.이것은 def가 정의한 함수와 구별됩니다.
lambda와 def의 차이점:
>>> def add(x,y): #
return x+y #
>>> z=f(3,4)
>>> print(z)
7 # 7
>>> lambda x,y:x+y
<function <lambda> at 0x0000020F385B86A8>
# lambda function( )
>>> f=lambda x,y:x+y # add(x,y)
>>> f(1,2)
3
>>> f(3,4)
7
>>> def multiply(x,y):
return x*y
>>> multiply(3,4)
12
>>> multiply=lambda x,y:x*y
>>> multiply(3,4)
12
>>> def subtract(x,y):
return x-y
>>> subtract(3,4)
-1
>>> subtract=lambda x,y:x-y
>>> subtract(3,4)
-1
>>> def divide(x,y):
return x/y
>>> divide(4,2)
2.0
>>> divide=lambda x,y:x/y
>>> divide(4,2)
2.0
# , , lambda ,
lambda의 응용
# 2.lambda
# ---CASE 1
fs = map(lambda i:(lambda j: i*j), range(6))
print([f(2) for f in fs])
#---CASE 2
fs = [lambda j:i*j for i in range(6)]
print([f(2) for f in fs])
#---CASE 3
fs = []
for i in range(6):
fs.append(lambda j:i*j)
if i==3:
break
print([f(2) for f in fs])
#---CASE 4
fs = [(lambda i:lambda j:i*j)(i) for i in range(6)]
print([f(2) for f in fs])
# :
# [0, 2, 4, 6, 8, 10]
# [10, 10, 10, 10, 10, 10]
# [6, 6, 6, 6]
# [0, 2, 4, 6, 8, 10]
map () 함수다음은 맵 () 함수를 보십시오. 이것은 하나의 함수를 매거할 수 있는 유형 위에 비출 수 있습니다.위에서 제시한 a와 f를 따라 쓸 수 있습니다.
map(f , a)
즉, 함수 f를 순서대로 a의 모든 원소에 끼워 결과를 얻는다.lambda 표현식으로 f를 바꾸면 다음과 같이 됩니다.
map( lambda x : x + 1, [1, 2, 3] )
일목요연하다.Apply() 함수
Python에서 apply 함수의 형식은:apply(func,*args,*kwargs)
물론,func는 익명 함수일 수 있습니다.
용도: 하나의 함수의 매개 변수가 하나의 원조나 사전에 존재할 때 이 함수를 간접적으로 호출하고 요소나 사전의 매개 변수를 순서대로 매개 변수에 전달한다.
해석:args는 함수에 따라 필요한 매개 변수를 전달하는 위치 매개 변수를 포함하는 원조이다.간단하게 말하자면 만약에 A 함수의 함수 위치가 A(a=1, b=2)라면 이 원조에서는 반드시 이 매개 변수의 위치 순서에 따라 전달(a=3, b=4)해야 하며 (b=4, a=3)와 같은 순서가 되어서는 안 된다.kwargs는 키워드 파라미터를 포함하는 사전입니다. 그 중에서args가 전달되지 않으면,kwargs가 전달해야 합니다.args의 위치에 비어 있어야 합니다.
apply의 반환값은 함수func 함수의 반환값입니다.
def function(a,b):
print(a,b)
apply(function,('good','better'))
apply(function,(2,3+6))
apply(function,('cai','quan'))
apply(function,('cai',),{'b':'caiquan'})
apply(function,(),{'a':'caiquan','b':'Tom'})
출력 결과:
('good', 'better')
(2, 9)
('cai', 'quan')
('cai', 'caiquan')
('caiquan', 'Tom')
삼원 연산삼원 연산은 삼목 연산이라고도 부르며 간단한 조건 문장에 대한 약어이다.
예를 들면: 간단한 조건 문장――> 삼원 연산
if :
val = 1
else:
val = 2
val = 1 if else 2
python의 삼원 연산자는 다른 언어와 같지 않고, 다른 것은 일반적으로 모두판정 조건?진짜 결과: 가짜 결과
... 와 같다
result = 5 >3?1:0
python의 형식은 다음과 같습니다.
if else <br>result =x if condition else y
예:
1 if 5>0 else 0
def func(x,y):
''' , x y, x-y, , y-x'''
return x-y if x>y else y-x
r1 = func(10,18)
r2 = func(18,12)
print(r1)
print(r2)
:
8
6
이상은python 익명 함수와 삼원 연산 학습 노트의 상세한 내용입니다. 더 많은python 익명 함수와 삼원 연산에 관한 자료는 저희 다른 관련 글을 주목해 주십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.