Top 3 Python-Funktionen, von denen Sie (wahrscheinlich) nichts wussten

Hallo Habr! Ich präsentiere Ihnen die Übersetzung des Artikels „Top 3 Python-Funktionen, die Sie (wahrscheinlich) nicht kennen“ von Dario Radečić.

Python ist eine der beliebtesten Sprachen des 21. Jahrhunderts und bietet sicherlich viele interessante Funktionen, die es wert sind, im Detail untersucht zu werden. Drei davon werden heute theoretisch und dann mit praktischen Beispielen betrachtet.

Bild

Der Hauptgrund, warum ich über diese Funktionen sprechen möchte, ist, dass sie dazu beitragen, das Schreiben von Schleifen zu vermeiden . Zyklen können in einigen Fällen teuer sein, und außerdem tragen diese Funktionen zur Erhöhung der Geschwindigkeit bei.

Hier sind die Funktionen, die im Artikel behandelt werden:

1. map ()
2. filter ()
3. redu ()

Auch wenn Sie bereits von diesen Funktionen gehört haben, ist es nichts Falsches, Ihr Wissen mit etwas mehr Theorie und Beispielen zu erweitern.

Also, ohne weiteres ... Fangen wir an!

Karte ()


Die Funktion map () verwendet als Parameter eine andere Funktion zusammen mit einem Array. Die Idee ist, eine Funktion (als Argument übergeben) auf jedes Element im Array anzuwenden .

Dies ist aus zwei Gründen nützlich:

  1. Sie müssen keine Schleife schreiben
  2. Es ist schneller als eine Schleife

Schauen wir es uns in Aktion an. Ich werde eine Funktion "num_func ()" deklarieren, die eine einzelne Zahl als Parameter verwendet. Diese Zahl wird quadriert, durch 2 teilbar und als solche zurückgegeben. Beachten Sie, dass die Operationen willkürlich ausgewählt wurden. Sie können alles innerhalb der Funktion tun:

Bild

Jetzt deklarieren wir ein Array von Zahlen, auf die wir "num_func ()" anwenden möchten. Beachten Sie, dass "map ()" selbst das Anzeigeobjekt zurückgibt , sodass Sie es in eine Liste konvertieren müssen:

Bild

Es sieht so aus, als ob der Prozess erfolgreich abgeschlossen wurde. Hier gibt es nichts Revolutionäres, aber es wäre schön, Zyklen möglichst zu vermeiden.

filter ()


Hier ist eine weitere anständige Funktion, mit der Sie Zeit sparen - sowohl schriftlich als auch in der Ausführung. Wie der Name schon sagt, besteht die Idee darin, nur die Elemente im Array zu speichern , die eine bestimmte Bedingung erfüllen .

Wie im Fall von "map ()" können wir eine Funktion im Voraus deklarieren und sie dann zusammen mit einem iterierbaren Objekt (z. B. einer Liste) an "filter ()" übergeben.

Schauen wir es uns in Aktion an. Ich ging weiter und deklarierte eine Funktion "more_than_15 ()", die, wie der Name schon sagt, "true" zurückgibt, wenn das als Parameter angegebene Element größer als 15 ist:

Bild

Als nächstes deklarieren wir ein Array von Zahlen und übergeben sie als zweiten Parameter an die Funktion ". filter () ":

Bild

Wie erwartet erfüllen nur drei Werte diese Bedingung. Auch hier nichts Revolutionäres, aber es sieht viel besser aus als der Zyklus.

reduzieren ()


Jetzt "reduzieren ()". Es unterscheidet sich geringfügig von den beiden vorherigen. Zuerst müssen wir es aus dem functools-Modul importieren. Die Hauptidee ist, dass diese Funktion auf ein Array von Elementen angewendet wird und als Ergebnis ein einzelner Wert zurückgegeben wird .

Der letzte Teil ist entscheidend - "redu ()" gibt kein Array von Elementen zurück, sondern immer einen einzelnen Wert. Schauen wir uns das Diagramm an, um dieses Konzept zu konkretisieren:

Bild

Hier ist die Logik für den Fall, dass das Diagramm nicht 100% klar ist:

  1. 5 zu 10 addiert, ergibt 15
  2. 15 zu 12 addiert, ergibt 27
  3. 27 wird zu 18 addiert, das Ergebnis ist 45
  4. 45 wird zu 25 addiert, das Ergebnis ist 70

Und 70 ist der Wert, der zurückgibt. Um mit der Implementierung des Codes zu beginnen, importieren wir die Reduktionsfunktion aus dem functools-Modul und deklarieren eine Funktion, die die Summe zweier Zahlen zurückgibt :

Bild

Jetzt können wir zum Diagramm im Code zurückkehren und sicherstellen, dass alles so funktioniert, wie es sollte:

Bild

Bis Sie zum Kommentarbereich gehen, weiß ich es genau dass es andere Möglichkeiten gibt, Listenelemente zusammenzufassen. Dies ist das einfachste Beispiel, um die Funktionsweise einer Funktion zu demonstrieren.

Bevor du gehst:


Ich hoffe, dass Sie diese drei Funktionen in Ihrem täglichen Leben irgendwie nutzen können. Die Geschwindigkeitssteigerung ist möglicherweise nicht signifikant - sie hängt von der Datenmenge ab, mit der Sie arbeiten -, aber der Code sieht mit weniger Schleifen besser aus.

Wenn Sie andere Beispiele haben, können Sie diese gerne im Kommentarbereich veröffentlichen.

Danke fürs Lesen.

All Articles