우리는 Python에서 루프를 사용하는 것이 매우 느리다는 것을 알고 있습니다. 유사한 상황을 처리하는 경우 어떻게 해야 합니까?
이 기사에서는 Python 루프를 대체하는 데 사용할 수 있는 방법과 사례를 공유하겠습니다.
위 기능을 사용하기 전에 람다 함수에 익숙하지 않은 경우 간단히 살펴보겠습니다.
Lambda 함수는 일반 함수의 대안입니다. 한 줄의 코드로 정의할 수 있으므로 코드에서 시간과 공간을 덜 차지합니다. 예를 들어 아래 코드에서는 람다 함수가 실제로 작동하는 것을 볼 수 있습니다.
def multiply_by_2(x): x*2
lambda function
lambda x: x*2
참고: 일반 함수 대신 람다 함수를 사용하는 것이 더 좋습니다.
map 함수를 사용하면 반복 가능한 객체(리스트, 튜플 등)의 각 값에 함수를 적용할 수 있습니다.
map(function, iterable)
목록(반복 가능한 객체)에서 제곱수를 얻고 싶다고 가정해 보세요. 먼저 숫자의 제곱을 구하는 square() 함수를 만듭니다.
def square(x): return x*x
그런 다음 map 함수를 사용하여 입력된 숫자 목록에 square() 함수를 적용하겠습니다.
input_list = [2, 3, 4, 5, 6] # Without lambda result = map(square, input_list) # Using lambda function result = map(lambda x: x*x, input_list) # converting the numbers into a list list(result) # Output: [4, 9, 16, 25, 36]
직관적으로 필터 함수는 반복 가능한 객체(목록, 튜플, 집합 등)에서 값을 필터링하는 데 사용됩니다. 필터 조건은 필터 함수에 매개변수로 전달된 함수 내에서 설정됩니다.
filter(function, iterable)
10보다 작은 값을 필터링하려면 필터 기능을 사용하겠습니다.
def less_than_10(x): if x < 10: return x
그런 다음 필터 함수를 사용하여 less_than_10() 함수를 값 목록에 적용합니다.
input_list = [2, 3, 4, 5, 10, 12, 14] # Without lambda list(filter(less_than_10, input_list)) # using lambda function list(filter(lambda x: x < 10, input_list)) # Output: [2, 3, 4, 5]
Reduce 기능은 맵, 필터 기능과 조금 다릅니다. iterable의 모든 값에 반복적으로 적용되며 하나의 값만 반환합니다.
아래 예시에서는 덧셈 기능을 적용하여 숫자 목록을 줄였습니다. 최종 출력은 목록에 있는 모든 숫자의 합인 15가 됩니다. 두 개의 입력 숫자를 더하는 add() 함수를 만들어 보겠습니다.
def addition(x,y): return x + y
다음으로 목록에 있는 모든 숫자의 합을 구하기 위해 이 덧셈 함수를 축소 함수의 인수로 적용하겠습니다.
from functools import reduce input_list = [1, 2, 3, 4, 5] # Without Lambda function reduce(addition, input_list)) # With Lambda function reduce(lambda x,y: x+y, input_list)) # Output: 15
위 내용은 Python 프로그래밍: 루프를 피하는 탁월한 방법!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!