> 백엔드 개발 > 파이썬 튜토리얼 > Python 프로그래밍: 루프를 피하는 탁월한 방법!

Python 프로그래밍: 루프를 피하는 탁월한 방법!

PHPz
풀어 주다: 2023-04-26 15:10:08
앞으로
1784명이 탐색했습니다.

우리는 Python에서 루프를 사용하는 것이 매우 느리다는 것을 알고 있습니다. 유사한 상황을 처리하는 경우 어떻게 해야 합니까?

不要在 Python 中使用循环,这些方法其实更棒!

이 기사에서는 Python 루프를 대체하는 데 사용할 수 있는 방법과 사례를 공유하겠습니다.

  • Map
  • Filter
  • Reduce

위 기능을 사용하기 전에 람다 함수에 익숙하지 않은 경우 간단히 살펴보겠습니다.

Lambda 함수는 일반 함수의 대안입니다. 한 줄의 코드로 정의할 수 있으므로 코드에서 시간과 공간을 덜 차지합니다. 예를 들어 아래 코드에서는 람다 함수가 실제로 작동하는 것을 볼 수 있습니다.

def multiply_by_2(x):
x*2
로그인 후 복사

lambda function

lambda x: x*2
로그인 후 복사

참고: 일반 함수 대신 람다 함수를 사용하는 것이 더 좋습니다.

1. Map

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]
로그인 후 복사

2. Filter

직관적으로 필터 함수는 반복 가능한 객체(목록, 튜플, 집합 등)에서 값을 필터링하는 데 사용됩니다. 필터 조건은 필터 함수에 매개변수로 전달된 함수 내에서 설정됩니다.

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]
로그인 후 복사

3.Reduce

Reduce 기능은 맵, 필터 기능과 조금 다릅니다. iterable의 모든 값에 반복적으로 적용되며 하나의 값만 반환합니다.

아래 예시에서는 덧셈 기능을 적용하여 숫자 목록을 줄였습니다. 최종 출력은 목록에 있는 모든 숫자의 합인 15가 됩니다. 不要在 Python 中使用循环,这些方法其实更棒!두 개의 입력 숫자를 더하는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:51cto.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿