Fünf versteckte Tricks in Python, von denen Sie wahrscheinlich noch nie gehört haben

PHPz
Freigeben: 2023-04-13 14:31:03
nach vorne
1585 Leute haben es durchsucht

Fünf versteckte Tricks in Python, von denen Sie wahrscheinlich noch nie gehört haben

Das Leben ist kurz, lerne Python schnell

1 ... Objekt

Das hast du richtig gemacht Wenn Sie es falsch lesen, ist es „…“

In Python... stellt es ein Objekt namens Ellipsis dar. Laut offizieller Beschreibung handelt es sich um einen speziellen Wert, der normalerweise als Platzhalter für eine leere Funktion oder für Slicing-Operationen in Numpy verwendet werden kann.

Zum Beispiel:

def my_awesome_function():
...
Nach dem Login kopieren

entspricht:

def my_awesome_function():
Ellipsis
Nach dem Login kopieren

Natürlich können Sie auch pass oder string als Platzhalter verwenden: #🎜🎜 #

def my_awesome_function():
pass
Nach dem Login kopieren
def my_awesome_function():
"An empty, but also awesome function"
Nach dem Login kopieren

Ihre Endwirkung ist die gleiche.

Lassen Sie uns darüber sprechen, wie ... Objekte in Numpy eine Rolle spielen. Erstellen Sie ein 3x3x3-Matrix-Array und rufen Sie dann die zweite Spalte aller innersten Matrizen ab:

>>> import numpy as np
>>> array = np.arange(27).reshape(3, 3, 3)
>>> array
array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8]],
 [[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
 [[18, 19, 20],
[21, 22, 23],
[24, 25, 26]]])
Nach dem Login kopieren

In der Reihenfolge Um die zweite Spalte der Top-Level-Matrix zu erhalten, könnte die herkömmliche Methode so aussehen:

>>> array[:, :, 1]
array([[ 1, 4, 7],
 [10, 13, 16],
 [19, 22, 25]])
Nach dem Login kopieren

Wenn Sie ... Objekt verwenden können, sieht es so aus:

>>> array[..., 1]
array([[ 1, 4, 7],
 [10, 13, 16],
 [19, 22, 25]])
Nach dem Login kopieren
# 🎜 🎜#Bitte beachten Sie jedoch, dass ... Objekte nur in Numpy verfügbar sind, nicht in in Python integrierten Arrays.

2. Iterationsobjekte entpacken

Das Entpacken von Iterationsobjekten ist eine sehr praktische Funktion:

>>> a, *b, c = range(1, 11)
>>> a
1
>>> c
10
>>> b
[2, 3, 4, 5, 6, 7, 8, 9]
Nach dem Login kopieren

oder:

>>> a, b, c = range(3)
>>> a
0
>>> b
1
>>> c
2
Nach dem Login kopieren
#🎜 🎜# Anstatt Code wie diesen zu schreiben:

>>> lst = [1]
>>> a = lst[0]
>>> a
1
>>> (a, ) = lst
>>> a
1
Nach dem Login kopieren

Sie könnten genauso gut eine elegantere Zuweisungsoperation ausführen, genau wie das Dekomprimieren des iterierbaren Objekts:

>>> lst = [1]
>>> [a] = lst
>>> a
1
Nach dem Login kopieren

Obwohl das etwas dumm erscheint , aber meiner persönlichen Meinung nach ist es eleganter als die frühere Schreibweise.

3. Die Kunst der Erweiterung

Es gibt verschiedene seltsame Möglichkeiten, Arrays zu erweitern, wie zum Beispiel:

>>> l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> flattened = [elem for sublist in l for elem in sublist]
>>> flattened
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Nach dem Login kopieren

Wenn Sie über gewisse Kenntnisse verfügen Reduzieren und Lambda Verstanden, es wird empfohlen, eine elegantere Methode zu verwenden:

>>> from functools import reduce
>>> reduce(lambda x,y: x+y, l)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Nach dem Login kopieren

Die Kombination von Reduzieren und Lambda kann Spleißoperationen für jedes Unterarray im l-Array ausführen.

Natürlich gibt es einen magischeren Weg:

>>> sum(l, [])
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> # 其实相当于 [] + [1, 2, 3] + [4, 5, 6] + [7, 8, 9]
Nach dem Login kopieren

Ja, eine Summenoperation für das zweidimensionale Array kann dazu führen, dass jedes Element im zweidimensionalen Array Folgendes tut: Add"-Methode zum Zusammenfügen.

Wenn Sie eine Summenoperation für ein dreidimensionales Array ausführen, kann es zu diesem Zeitpunkt in ein zweidimensionales Array umgewandelt werden -dimensionales Array, es kann zu einem eindimensionalen Array erweitert werden.

Obwohl diese Technik ausgezeichnet ist, empfehle ich sie nicht, da die Lesbarkeit zu schlecht ist.

4. Unterstrich _-Variable

Immer wenn Sie einen Ausdruck im Python-Interpreter, in IPython oder in der Django-Konsole ausführen, bindet Python den Ausgabewert an die _-Variable. Medium: # 🎜🎜#
>>> nums = [1, 3, 7]
>>> sum(nums)
11
>>> _
11
>>>
Nach dem Login kopieren

Da es sich um eine Variable handelt, können Sie sie jederzeit überschreiben oder wie eine normale Variable bedienen:

>>> 9 + _
20
>>> a = _
>>> a
20
Nach dem Login kopieren

5 Mehrzweck-sonst#🎜🎜 ## 🎜🎜#Viele Leute wissen nicht, dass else an vielen Stellen verwendet werden kann. Zusätzlich zum typischen if else können wir es auch in Schleifen und bei der Ausnahmebehandlung verwenden.

loop

Wenn Sie feststellen müssen, ob eine bestimmte Logik in der Schleife verarbeitet wird, tun Sie normalerweise Folgendes:

found = False
a = 0
while a < 10:
if a == 12:
found = True
a += 1
if not found:
print("a was never found")
Nach dem Login kopieren

Wenn sonst eingeführt, wir können eine Variable weniger verwenden:

a = 0
while a < 10:
if a == 12:
break
a += 1
else:
print("a was never found")
Nach dem Login kopieren

Ausnahmebehandlung

Wir können else in try... außer... verwenden, um Logik zu schreiben, wenn Ausnahmen nicht abgefangen werden : #🎜 🎜#

In [13]: try:
...: {}['lala']
...: except KeyError:
...: print("Key is missing")
...: else:
...: print("Else here")
...:
Key is missing
Nach dem Login kopieren

Wenn das Programm keine Ausnahme hat, nimmt es auf diese Weise den else-Zweig:

In [14]: try:
...: {'lala': 'bla'}['lala']
...: except KeyError:
...: print("Key is missing")
...: else:
...: print("Else here")
...:
Else here
Nach dem Login kopieren
Wenn Sie häufig Ausnahmebehandlungen durchführen, kennen Sie diese Technik ist ziemlich praktisch.

Das obige ist der detaillierte Inhalt vonFünf versteckte Tricks in Python, von denen Sie wahrscheinlich noch nie gehört haben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!