찾다
백엔드 개발파이썬 튜토리얼Python에서 일반적으로 사용되는 5가지 내장 고차 함수 소개(코드 포함)

이 글은 Python에서 일반적으로 사용되는 5가지 내장 고차 함수(코드 포함)를 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

Python에는 일반적으로 사용되는 고차 함수가 내장되어 있습니다.

1. 함수형 프로그래밍

함수 자체는 변수에 할당될 수 있으며 할당 후 변수는 함수가 됩니다.

함수 자체가 다음을 수행할 수 있습니다. 매개변수로 다른 함수에 전달됩니다.

허용합니다. 함수를 반환합니다.

1. map() 함수

는 Python에 내장된 고차 함수입니다.

함수 f를 목록의 각 요소에 적용합니다. 새로운 목록을 얻고

def add(x):
    return x+x

print(map(add,[1, 2, 3]))
# Out:<map object at 0x00000239E833DE48>
print(list(map(add,[1, 2, 3])))
# Out:[2, 4, 6]

2를 반환합니다. reduce() 함수

reduce() 함수도 Python에 내장된 고차 함수입니다.

reduce() 함수가 받은 매개변수는 map(), 함수 f 및 목록과 유사하지만, 행위가 map()과 다릅니다. Reduce()가 전달한 함수 f는 두 개의 매개변수

를 받아야 합니다.

reduce() 함수 f는 목록의 각 요소에 대해 반복적으로 호출되고 최종 결과 값이 반환됩니다.

Python3에서는 전역 네임스페이스에서 감소() 함수가 제거되었습니다. 이제 functools 모듈에 배치되었습니다. 이를 사용하려면

functools 모듈을 도입하여 감소() 함수를 호출해야 합니다. :

from functools import reduce


def prod(x, y):
    return x*y


print(reduce(prod, [2, 4, 5, 7, 12]))
# Out:3360  # 2*4*5*7*12
# reduce()还可以接收第3个可选参数,作为计算的初始值。如果把初始值设为100
print(reduce(prod, [2, 4, 5, 7, 12], 100))
# Out:336000    # 2*4*5*7*12*100

3, filter() 함수

는 Python에 내장된 또 다른 유용한 고차 함수입니다. filter() 함수는 함수 f와 목록을 받습니다. 각 요소를 판단하고, 필터()는 판단 결과에 따라 조건에 맞지 않는 요소를 자동으로 필터링합니다.

조건에 맞는 요소로 구성된 새 목록을 반환합니다.

import math

def is_sqr(x):
    return math.sqrt(x) == int(math.sqrt(x))

print(list(filter(is_sqr, range(1, 101))))
# Out:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

4,

sorted() 함수 는 모든 반복 가능한 객체에 대해 정렬 작업을 수행합니다.

sort와 sorted의 차이점:

sort는 목록에 적용되는 방법이며 sorted는 반복 가능한 모든 개체를 정렬할 수 있습니다.

list의 정렬 메서드는 기존 목록에 대한 작업을 반환하는 반면, 내장 함수 sorted 메서드는 원래 목록을 기반으로 한 작업이 아닌 새 목록을 반환합니다.

sorted(iterable, key=None, reverse=False)

iterable -- 반복 가능한 개체입니다.

key - 매개변수가 하나뿐인 비교 요소에 주로 사용됩니다. 특정 함수 매개변수는 반복 가능한 객체에서 가져오고 정렬을 위해 반복 가능한 객체에 요소를 지정합니다.

reverse -- 정렬 규칙, reverse = 내림차순이면 True, 오름차순이면 reverse = False(기본값).

재정렬된 목록 반환

print(sorted([5, 2, 3, 1, 4]))
# Out:[1, 2, 3, 4, 5]
print(sorted({1:&#39;D&#39;, 2:&#39;B&#39;, 3:&#39;B&#39;, 4:&#39;E&#39;, 5: &#39;A&#39;}))
# Out:[1, 2, 3, 4, 5]


키를 사용하여 역순으로 정렬

example_list = [5, 0, 6, 1, 2, 7, 3, 4]
result_list = sorted(example_list, key=lambda x: x*-1)
print(result_list)

역 정렬하려면 세 번째 매개변수 reverse=True:

example_list = [5, 0, 6, 1, 2, 7, 3, 4]
print(sorted(example_list, reverse=True))
# Out:[7, 6, 5, 4, 3, 2, 1, 0]

5를 전달할 수도 있습니다. Python 함수는 데이터를 반환할 수 있을 뿐만 아니라 int, str, list, dict 등과 같은 유형을 사용할 수 있으며 함수를 반환할 수도 있습니다!

반환 함수와 반환 값을 구별하는 데 주의하세요:

def my_abs():
    return abs  # 返回函数,返回函数可以把一些计算延迟

def my_abs2(x):
    return abs(x)   # 返回函数调用的结果,返回值是一个数值
def calc_prod(lst):
    def lazy_prod():
        prod = 1
        for i in lst:
            prod = prod*i
        return prod
    return lazy_prod
f = calc_prod([1, 2, 3, 4])
print(f())
# Out:24

5.1.lazy_prod() 함수와 반환 함수 cal_prod()를 정의하는 이유는 무엇입니까?

Python은 반환 함수의 기본 구문을 지원합니다

def f():
    print(&#39;call f()...&#39;)
    # 定义函数g:
    def g():
        print(&#39;call g()...&#39;)
    # 返回函数g:
    return g

만 반환 함수의 역할:


반환 함수는 일부 계산을 연기할 수 있습니다. 예를 들어 정규 합산 함수를 정의하는 경우:

def calc_sum(lst):
    return sum(lst)
print(calc_sum([1,2,3,4]))
# Out:10

def calc_sum(lst):
    def lazy_sum():
        return sum(lst)
    return lazy_sum

f = calc_sum([1, 2, 3, 4])
print(f)    # 代码并没有对函数进行执行计算出结果,而是返回函数,所以打印出来的是类型
#Out: <function calc_sum.<locals>.lazy_sum at 0x000001FF43462E18>
print(f())      # 对返回的函数进行调用时,才计算出结果
# Out:10

위 내용은 Python에서 일반적으로 사용되는 5가지 내장 고차 함수 소개(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 segmentfault에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
파이썬 : 편집과 해석에 대한 깊은 다이빙파이썬 : 편집과 해석에 대한 깊은 다이빙May 12, 2025 am 12:14 AM

Pythonusesahybridmodelofilationandlostretation : 1) ThePyThoninterPretreCeterCompileSsourcodeIntOplatform-IndependentBecode.

Python은 해석 된 또는 편집 된 언어입니까? 왜 중요한가?Python은 해석 된 또는 편집 된 언어입니까? 왜 중요한가?May 12, 2025 am 12:09 AM

Pythonisbothingretedandcompiled.1) 1) it 'scompiledtobytecodeforportabilityacrossplatforms.2) thebytecodeisthentenningreted, withfordiNamictyTeNgreted, WhithItmayBowerShiledlanguges.

루프 대 파이썬의 루프 : 주요 차이점 설명루프 대 파이썬의 루프 : 주요 차이점 설명May 12, 2025 am 12:08 AM

forloopsareideal when

루프를위한 것 및 기간 : 실용 가이드루프를위한 것 및 기간 : 실용 가이드May 12, 2025 am 12:07 AM

forloopsareusedwhendumberofitessiskNowninadvance, whilewhiloopsareusedwhentheationsdepernationsorarrays.2) whiloopsureatableforscenarioScontiLaspecOndCond

파이썬 : 진정으로 해석 되었습니까? 신화를 파악합니다파이썬 : 진정으로 해석 되었습니까? 신화를 파악합니다May 12, 2025 am 12:05 AM

pythonisnotpurelynlogreted; itusesahybrideprophorfbyodecodecompilationandruntime -INGRETATION.1) pythoncompilessourcecodeintobytecode, thepythonVirtualMachine (pvm)

동일한 요소를 가진 Python Concatenate 목록동일한 요소를 가진 Python Concatenate 목록May 11, 2025 am 12:08 AM

ToconcatenatelistsinpythonwithesameElements, 사용 : 1) OperatorTokeEpduplicates, 2) asettoremovedUplicates, or3) listComperensionForControlOverDuplicates, 각 methodHasDifferentPerferformanCeanDorderImpestications.

해석 대 컴파일 언어 : Python 's Place해석 대 컴파일 언어 : Python 's PlaceMay 11, 2025 am 12:07 AM

PythonisancerpretedLanguage, 비판적 요소를 제시하는 PytherfaceLockelimitationsIncriticalApplications.1) 해석 된 언어와 같은 thePeedBackandbackandrapidProtoTyping.2) CompilledlanguagesLikec/C transformt 해석

루프를 위해 및 while 루프 : 파이썬에서 언제 각각을 사용합니까?루프를 위해 및 while 루프 : 파이썬에서 언제 각각을 사용합니까?May 11, 2025 am 12:05 AM

useforloopswhhenmerfiterationsiskNownInAdvance 및 WhileLoopSweHeniTesslationsDepoyConditionismet whilEroopsSuitsCenarioswhereTheLoopScenarioswhereTheLoopScenarioswhereTheLoopScenarioswhereTherInatismet, 유용한 광고 인 푸트 gorit

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.