Python kann ohne Zweifel als eine Sprache bezeichnet werden, die im letzten Jahrzehnt ein bedeutendes Wachstum erlebt hat, eine Sprache, die sich als mächtig erwiesen hat. Ich habe viele Python-Anwendungen erstellt, von
interaktiven Karten bis hin zu
Blockchains . Python hat eine Menge Funktionen. Für Anfänger ist es sehr schwierig, all dies auf einmal zu erfassen.

Selbst wenn Sie ein Programmierer sind, der von einer anderen Sprache wie C zu Python wechselt, oder wenn Sie ein Wissenschaftler sind, der in MATLAB gearbeitet hat, ist die Python-Programmierung mit Abstraktionen auf hoher Ebene auf jeden Fall eine ganz besondere Erfahrung. Ich möchte über fünf meiner Meinung nach sehr wichtige Python-Features sprechen, von denen ich leider vorher nichts wusste.
1. Listeneinschluss - Schreiben eines kompakten Codes
Viele nennen solche Python-Mechanismen wie
lambda
,
map
und
filter
die Geheimnisse, die jeder Programmieranfänger lernen sollte. Und obwohl ich mir sicher bin, dass all dies wissenswert ist, habe ich in den meisten Situationen, in denen diese Tools angewendet werden können, eine unzureichende Flexibilität dieser Tools festgestellt. Infolgedessen sind sie keineswegs so nützlich, wie es den Anschein hat.
Lambda
ist eine Methode zum Erstellen kleiner, einzeiliger Funktionen zur einmaligen Verwendung. Wenn eine Funktion mehrmals aufgerufen wird, wird die Leistung beeinträchtigt. Gleichzeitig wendet die
map
die Funktion auf alle Elemente der Liste an und der
filter
wählt aus einer bestimmten Menge von Elementen eine Teilmenge aus, die der vom Benutzer angegebenen Bedingung entspricht.
add_func = lambda z: z ** 2 is_odd = lambda z: z%2 == 1 multiply = lambda x,y: x*y aList = list(range(10)) print(aList)
Listeneinschluss (Listenverständnis) ist ein kompaktes und praktisches Design, mit dem Listen aus anderen Listen mit flexiblen Ausdrücken und Bedingungen erstellt werden können. Diese Konstruktion wird mit eckigen Klammern beschrieben. Sie enthalten Ausdrücke oder Funktionen, die nur dann für jedes Element der Liste gelten, wenn dieses Element eine bestimmte Bedingung erfüllt. Listeneinschluss kann eine mehrstufige Struktur sein, die verschachtelte Blöcke enthält. Auf diese Weise können Sie verschachtelte Listen verarbeiten, was wesentlich flexibler ist als die Verwendung von
map
und
filter
.
Hier ist die Syntax für die Aufnahme von Listen:
[ expression(x) for x in aList if optional_condition(x) ]
Hier ist ein Beispiel:
print(list(map(add_func, aList))) print([x ** 2 for x in aList])
2. Mit Listen arbeiten - Zirkellisten
In Python können Sie beim Arbeiten mit Listen negative Indizes verwenden. Der folgende Vergleich ist richtig:
aList[-1] == aList[len(aList)-1]
Dies ermöglicht es beispielsweise, das zweite Element mit dem
aList[-2]
vom Ende der Liste
aList[-2]
. Andere ähnliche Ausführungen sind möglich.
Außerdem können Sie einen Ausschnitt aus der Liste erhalten:
aList[start:end:step]
Hier ist das Anfangselement der Liste im resultierenden Slice enthalten, und das letzte Element ist nicht enthalten. Angenommen, die Liste sieht folgendermaßen aus:
aList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
Das
aList[2:5]
sieht aus wie
[2, 3, 4]
. Außerdem können Sie die Liste mit dem
aList[::-1]
"spiegeln". In unserem Fall ergibt dies
[9, 8, 7, 6, 5, 4, 3, 2, 1]
. Ich finde diese Lösung für die "Flip" -Aufgabe der Liste sehr visuell und erfolgreich.
Sie können die Liste auch entpacken, indem Sie die darin gespeicherten Werte in separate Variablen einfügen. Oder - Zerlegen der Werte in separate Variablen und neue Listen mit einem Sternchen:
a, b, c, d = aList[0:4] print(f'a = {a}, b = {b}, c = {c}, d = {d}')
3. Zip- und Aufzählungsfunktionen - Erstellen leistungsfähiger for-Schleifen
Die
zip
Funktion erstellt einen Iterator, der die Elemente mehrerer Listen kombiniert. Dies ermöglicht das parallele Durchsuchen von Listen in
for
Schleifen und das parallele Sortieren. Mit dem Operator
*
können Sie die kombinierten Elemente in den normalen Zustand zurückversetzen.
Hier ist ein Beispiel für die Arbeit mit der
zip
Funktion:
numList = [0, 1, 2] engList = ['zero', 'one', 'two'] espList = ['cero', 'uno', 'dos'] print(list(zip(numList, engList, espList)))
Aber so können Sie die Listen in den normalen Zustand zurückversetzen:
Eng = list(zip(engList, espList, numList)) Eng.sort()
Die
enumerate
mag auf den ersten Blick sehr kompliziert aussehen, aber wenn Sie damit umgehen, stellt sich heraus, dass sie in vielen Fällen nützlich sein kann. Dies ist ein automatischer Zähler, der häufig
for
Schleifen verwendet wird. Außerdem ist es in solchen Zyklen nicht erforderlich, eine Zählervariable mit Konstruktionen wie
counter = 0
und
counter += 1
zu erstellen und zu inkrementieren.
Die Funktionen
zip
und
enumerate
sind zwei der leistungsstärksten Werkzeuge, die beim Konstruieren
for
Schleifen verwendet werden:
upperCase = ['A', 'B', 'C', 'D', 'E', 'F'] lowerCase = ['a', 'b', 'c', 'd', 'e', 'f'] for i, (upper, lower) in enumerate(zip(upperCase, lowerCase), 1): print(f'{i}: {upper} and {lower}.')
4. Generatoren - effiziente Speichernutzung
Generatoren werden in Fällen verwendet, in denen bestimmte Berechnungen durchgeführt werden müssen, die zum Auftreten einer großen Anzahl von Ergebnissen führen. Gleichzeitig muss jedoch die gleichzeitige Zuweisung von Speicher für die Speicherung aller dieser Ergebnisse vermieden werden. Mit anderen Worten, Generatoren geben bestimmte Werte „on the fly“ aus. Sie speichern jedoch nicht die zuvor von ihnen gefundenen Werte. Infolgedessen wird der Speicher sparsam genutzt.
Generatoren werden häufig zum Lesen großer Dateien oder zum Erstellen unendlicher Sequenzen mit dem Schlüsselwort
yield
. Ich finde es oft angebracht, sie in meinen Forschungsprojekten zu verwenden.
def gen(n):
5. Virtuelle Umgebung - Code-Isolation
Wenn Sie nur eine Idee aus diesem Artikel auswählen könnten, an die Sie sich erinnern könnten, dann würde ich Sie über diejenige informieren, über die wir in diesem Abschnitt sprechen werden. Wir sprechen über virtuelle Umgebungen (virtuelle Umgebung).
Python-Anwendungen verwenden oft viele verschiedene Pakete. Sie wurden von verschiedenen Entwicklern erstellt und unterscheiden sich in komplexen Abhängigkeiten. In einer bestimmten Anwendung kann eine bestimmte Version einer bestimmten Bibliothek verwendet werden. Eine andere Version für eine solche Anwendung funktioniert jedoch nicht. Was aber, wenn mehrere Anwendungen unterschiedliche Versionen derselben Bibliothek verwenden? Dies ist eine schwierige Frage, die uns auf die Idee bringt, dass es keine universelle Umgebung gibt, in der Pakete installiert sind, die für absolut alle Anwendungen geeignet sind. Die Antwort auf diese Frage kann als Verwendung virtueller Umgebungen bezeichnet werden.
So erstellen Sie voneinander isolierte virtuelle Umgebungen:
conda create -n venv pip python=3.7
Zusammenfassung
In diesem Artikel haben wir 5 nützliche Python-Funktionen behandelt. Es ging nämlich um Listeneinschlüsse, um zyklische Listen, um
zip
und
enumerate
, um Generatoren und virtuelle Umgebungen. Wir hoffen, dass diese Funktionen hilfreich sind.
Sehr geehrte Leser! Wenn Sie einem unerfahrenen Programmierer nur eine Python-Funktion mitteilen könnten, welche würden Sie wählen?
