Heim > Artikel > Backend-Entwicklung > Einführung in 5 häufig verwendete integrierte Funktionen höherer Ordnung in Python (mit Code)
Dieser Artikel bietet Ihnen eine Einführung in 5 häufig verwendete integrierte Funktionen höherer Ordnung (mit Code). Ich hoffe, dass er für Sie hilfreich ist. helfen.
Python verfügt über integrierte, häufig verwendete Funktionen höherer Ordnung:
1. Funktionale Programmierung
Die Funktion selbst kann einer Variablen zugewiesen werden, und die Variable wird nach der Zuweisung zu einer Funktion;
ermöglicht die Übergabe der Funktion selbst an eine andere Funktion als Parameter
ermöglicht die Rückgabe einer Funktion.
1. Die map()-Funktion
ist eine integrierte Funktion höherer Ordnung in Python. Sie empfängt eine Funktion f und eine Liste,
und übergibt die Funktion f, wirkt sich nacheinander auf jedes Element der Liste aus, erhält eine neue Liste und gibt
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()-Funktion
zurück
Die Funktion „reduce()“ ist ebenfalls eine in Python integrierte Funktion höherer Ordnung.
Die von der Funktion Reduce () empfangenen Parameter ähneln denen von Map (), einer Funktion f und einer Liste, das Verhalten unterscheidet sich jedoch von dem Verhalten von Map (). Die von Reduce () übergebene Funktion muss empfangen werden zwei Parameter,
reduce() ruft wiederholt die Funktion f für jedes Element der Liste auf und gibt den Endergebniswert zurück.
In Python3 wurde die Funktion „reduce()“ aus dem globalen Namespace entfernt. Sie befindet sich jetzt im Functools-Modul. Wenn Sie sie verwenden möchten,
müssen Sie sie importieren Modul zum Aufrufen der Reduce()-Funktion:
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()-Funktion
ist ein weiteres nützliches integriertes Python Die Funktion filter() ist eine Funktion höherer Ordnung und empfängt eine Funktion f und eine Liste. Die Funktion dieser Funktion f besteht darin, jedes Element zu beurteilen und die Elemente automatisch als „True“ oder „False“ herauszufiltern Basierend auf dem Beurteilungsergebnis gibt
eine neue Liste mit Elementen zurück, die die Bedingungen erfüllen.
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.
sort und sorted:
Liste gibt eine Operation für eine vorhandene Liste zurück, während die Sortiermethode der integrierten Funktion eine neue Liste zurückgibt und nicht eine Operation, die auf der ursprünglichen Liste basiert.
sorted(iterable, key=None, reverse=False)
iterable – iterierbares Objekt.
Schlüssel – Wird hauptsächlich für Vergleichselemente verwendet, mit nur einem Parameter. Die spezifischen Funktionsparameter werden aus dem iterierbaren Objekt übernommen und geben ein Element im iterierbaren Objekt zum Sortieren an.
reverse – Sortierregel, reverse = True für absteigende Reihenfolge, reverse = False für aufsteigende Reihenfolge (Standard).
Gibt die neu geordnete Liste zurück
print(sorted([5, 2, 3, 1, 4])) # Out:[1, 2, 3, 4, 5] print(sorted({1:'D', 2:'B', 3:'B', 4:'E', 5: 'A'})) # Out:[1, 2, 3, 4, 5]
Verwenden Sie die Taste, um in umgekehrter Reihenfolge zu sortieren
example_list = [5, 0, 6, 1, 2, 7, 3, 4] result_list = sorted(example_list, key=lambda x: x*-1) print(result_list)
Um die Sortierung umzukehren, können Sie auch The übergeben dritter Parameter 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-Funktionen können nicht nur Datentypen wie int, str, list, dict usw. zurückgeben, sondern auch Funktionen!
Bitte beachten Sie die Unterscheidung zwischen Rückgabefunktionen und Rückgabewerten:
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. Warum die Funktion lazy_prod() und die Rückgabefunktion cal_prod() definieren?
Python unterstützt die Grundlegende Syntax von Rückgabefunktionen
def f(): print('call f()...') # 定义函数g: def g(): print('call g()...') # 返回函数g: return g
Gibt nur die Funktion zurück:
Die Rückgabefunktion kann die Ausführung einiger Berechnungen verzögern. Wenn Sie beispielsweise eine normale Summationsfunktion definieren:
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
Das obige ist der detaillierte Inhalt vonEinführung in 5 häufig verwendete integrierte Funktionen höherer Ordnung in Python (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!