>  기사  >  백엔드 개발  >  필터, 람다 함수 표현

필터, 람다 함수 표현

高洛峰
高洛峰원래의
2016-10-20 10:01:561467검색

필터(함수 또는 없음, 시퀀스), 여기서 시퀀스는 목록, 튜플, 문자열일 수 있습니다. 이 함수의 기능은 요소 자체를 매개변수로 사용하여 함수를 호출할 때 True 또는 bool(반환 값)을 True로 반환하는 시퀀스의 모든 요소를 ​​필터링하고 이를 목록으로 반환하는 것입니다. 두 개의 매개변수(함수, 시퀀스) 중 함수는 하나의 값만 반환할 수 있습니다.

간단한 코드부터 시작해 보겠습니다.

print max(filter(lambda x: 555555 % x == 0, range(100, 999)))

코드는 555555를 출력한다는 뜻입니다. 가장 큰 세 자리 숫자의 약수는 얼마입니까?

우선 이 코드의 첫 번째 깨달음 포인트는 목록을 필터링하는 데 사용되는 Python 내장 함수인 filter

filter() 함수입니다. 가장 간단한 방법은 목록을 필터링하는 함수를 사용하고, 목록의 각 항목을 필터 함수에 전달하고, 필터 함수가 false를 반환할 때 목록에서 항목을 삭제하는 것입니다.

filter() 함수에는 함수와 목록이라는 두 가지 매개변수가 포함됩니다. 즉, 함수는 함수 매개변수가 반환한 결과가 true인지 여부에 따라 list 매개변수의 항목을 필터링하고 최종적으로 새로운 목록을 반환합니다.

간단히 말하면 filter() 함수는 다음 코드와 같습니다.

c = [b for b in a1 if b > 2]
print c

두 번째 지식 포인트는 람다()입니다. 함수

Python은 이 구문을 지원하므로 사용자는 람다라고 불리는 이러한 함수를 Lisp에서 차용했습니다.

def f(x):
    return x * 2
g = lambda x: x * 2
(lambda x: x * 2)(3)

코드에서 볼 수 있듯이 람다 함수는 일반 함수와 동일한 작업을 수행하며 람다에는 매개변수 주위에 괄호가 없습니다. list 및 무시됨 반환 키워드(전체 함수에 한 줄만 있고 함수에 이름이 없기 때문에 반환은 암시적으로 존재하지만 변수에 할당되어 호출될 수 있음)

코드의 마지막 부분은 다음을 보여줍니다. 람다 함수는 인라인 함수일 뿐입니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:강력한 zip다음 기사:강력한 zip