English English

Alternative Möglichkeiten zum Erstellen von Funktionen in Python

Sie können auch auf andere Weise Funktionen erstellen, um Operationen auf Objekten (Liste, Tupel, etc.) auf einfachere Art und Weise durchzuführen. Dies macht auch Ihren Programmiercode leichter lesbar.

Python bietet auch die folgenden Funktionen und Befehle, die mit (oder anstelle von) dem "def"-Befehl verwendet werden können:


lambda-Kommando

Dieser Befehl ist in der folgenden Syntax geschrieben:
lambda-Argumente : Expressions

Sie schreiben Ihre Variable (Argumente), die Sie vor dem doppelten Punkt ":" verwenden werden. Ihre Expression, der Ihre Argumente verwendet, wird nach dem doppelten Punkt geschrieben.
Das Ergebnis/Wert Ihres Ausdrucks wird zurückgegeben, wenn Sie Ihren definierten "lambda"-Befehl aufrufen. 

Der "lambda"-Befehl kann überall anstelle einer durch "def" definierten Funktion verwendet werden.

Beispiel - Mein Gewinn, berechnet durch meinen definierten "lambda"-Befehl "e", der meine Kosten "c" und meine Umsätze "s" erhält:

e = lambda k,s : s-k

Jetzt können wir meinen neuen Lambda-Befehl "e" nennen, der das Ergebnis meines Ausdrucks zurückgibt.

print(e(1000,2000)
1000

 

map()

Die Syntax der Funktion:

map(func, objec)

Beispiel - Diese Anwendung berechnet die zweite Potenz von den angegebenen Zahlen und zeigt sie als Liste an:

def sndpower(n): 
return n * n 

evennumbers = (0, 2, 4, 6, 8) 
results = map(sndpower, evennumbers) 
print(list(results))
{0, 4, 16, 36, 64}

Statt einer Funktion können Sie auch einen "lambda"-Befehl übergeben.

map(lambda n: n*n, evennumbers)


Die Funktion "map()" kann auch mehrere Listen als Argumente erhalten.

map(func, objec1, objec2, ... objecn)


 

zip()

Diese Funktion "zip()" hat die gleiche Funktionalität wie "map()", außer dass die Länge der zurückgegebenen Liste an die Länge des kürzesten definierten iterierbaren Objekts angepasst wird.


Sie können stattdessen auch "None" schreiben, wenn Sie keine Funktion verwenden wollen.
zip(None, myobject)

 

Beispiel:

a = [1,2,3,4,5]
b = [10,11,12]
results = zip(a, b)

print(list(results))
[(1, 10), (2, 11), (3, 12)]

 

 

reduce()

Die Funktion "reduce()" holt sich die Werte einer Sequenz und gibt daraus einen einzelnen Wert zurück, der von Ihrer definierten Funktion erzeugt wurde. Der Einzelwert kann die Summe, der Mittelwert, etc. sein.

Sie müssen das Python-Paket functools importieren.

from functools import reduce


Die Syntax der Funktion:

reduce(func, seq)

 

Beispiel - Diese Anwendung erstellt die Summe einer Sequenz:

from functools import reduce

numbers = [4,9,17,50,130]

def createsum(x, y):
return x+y;

results = reduce(createsum, numbers)

print(results)

 

 

filter()

Diese Funktion "filter()" verwendet Ihre definierte Filterfunktion ("func"), um ein Objekt ("objec") zu filtern, das nicht den Anforderungen Ihrer Funktion "func" entspricht.
Die Filterfunktion "func" ist eine Funktion, die einen Wert erhält und true oder false zurückgibt.

Die Syntax der Funktion:

filter(func, seq)


Beispiel:

numbers = [2, 4, 6, 60, 150]

def twodigits(x):
if (x >= 10):
return True
else:
return False

results = filter(twodigits, numbers)
print(list(results))
[60, 150]

Wenn Sie statt einer Funktion "None" verwenden, werden alle Werte angezeigt, die "true" sind.
Hier ist ein Beispiel, bei denen es Werte gibt die nicht "true" ist:

mylist = [-10, 0, False, '', 4, 6, 60, 150]

results = filter(None, mylist)
print(list(results))

[-10, 4, 6, 60, 150]

 

Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
Ok