Über Python3 ... (Ellipsenobjekt)

Was ist ein Ellipsenobjekt?

Versuchen Sie, "..." in Python 3 REPL einzugeben.

Python3


>>> ...
Ellipsis

Dies ist das Ellipsenobjekt.

Ein Singleton-Objekt, das durch "Ellipse" oder "..." dargestellt wird.

In der Offiziellen Referenz "Hauptsächlich erweiterte Slice-Syntax und benutzerdefinierte Containerdaten Es heißt nur "ein spezieller Wert, der in dem Typ verwendet wird" und definiert seine Verwendung nicht klar.

Das englische Wort Ellipse bedeutet "weggelassen", sodass es verwendet werden kann, wenn Sie die Verarbeitung oder Argumente weglassen möchten.

Unterschied von Keine oder bestanden

None

"Keine" bedeutet "kein Wert existiert", während "Ellipse" bedeutet "ein Wert existiert, wird aber weggelassen".

Aus der Tatsache, dass der Rückgabewert von "bool (Ellipsis)" "True" ist, ist ersichtlich, dass "Ellipsis" eine positivere Bedeutung hat als "None".

Python3


>>> bool(None)
False
>>> bool(Ellipsis)
True

pass

pass ist eine Aussage, aber ... ist ein Ausdruck.

Das heißt, ... kann einer Funktion als Argument gegeben werden.

Python3


>>> str(Ellipsis)
'Ellipsis'
>>> str(pass)
  File "<stdin>", line 1
    str(pass)
           ^
SyntaxError: invalid syntax

Wo zu verwenden

Ausführbarer Pseudocode

Erstens ist Python eine Sprache, die als ursprünglicher "ausführbarer Pseudocode" bezeichnet wird.

Dies bedeutet, dass Python-Code nicht nur ein "ausführbares Programm" ist, sondern ein "Ausdruck von Verarbeitung und Algorithmen, die sowohl Menschen als auch Computer verstehen können".

Im Pseudocode wird der abgekürzte Teil wie die Verarbeitung manchmal als ... geschrieben, aber man kann sagen, dass Python3 einen abstrakteren Ausdruck ermöglicht, indem dies als Wert erkannt wird, der "Auslassung" darstellt.

Schneiden eines mehrdimensionalen Arrays mit NumPy

Ein genaueres Beispiel.

Mit NumPy können Sie "..." in Slice-Notation für mehrdimensionale Arrays verwenden.

In diesem Fall gibt "..." an, dass der Index der nicht angegebenen Dimension beliebig ist.

Python3-NumPy


>>> import numpy
>>> a = numpy.array([[1, 2],
...                  [3, 4]]) #2x2 mehrdimensionales Array
>>> a[0, ...] #Ein Array von Elementen aus einer beliebigen Spalte in Zeile 0
array([1, 2])
>>> a[1, ...] #Ein Array von Elementen aus einer beliebigen Spalte in der ersten Zeile
array([3, 4])
>>> a[..., 0] #Ein Array von Elementen in Spalte 0 einer beliebigen Zeile
array([1, 3])
>>> a[..., 1] #Ein Array von Elementen aus der ersten Spalte einer Zeile
array([2, 4])
>>> a[...] #Ein Array von Elementen aus einer beliebigen Spalte in einer beliebigen Zeile
array([[1, 2],
       [3, 4]])

Sie könnten denken, dass Sie dasselbe mit : in Slice-Notation tun können.

Python3-NumPy


>>> a[0, :]
array([1, 2])

Das Verhalten von : und ... ist jedoch für Arrays mit drei oder mehr Dimensionen unterschiedlich.

: Gibt an, dass eine bestimmte Dimension beliebig ist, während ... angibt, dass der Index für alle nicht angegebenen Dimensionen beliebig ist.

>>> b = numpy.array([[[1, 2],
...                   [3, 4]],
...                  [[5, 6],
...                   [7, 8]]]) #2x2x2 mehrdimensionales Array
>>> b[..., 0] #1,Die 2. Dimension ist beliebig, der 3. Dimensionsindex ist 0---(1)
array([[1, 3],
       [5, 7]])
>>> b[:, :, 0] # (1)Synonym zu
array([[1, 3],
       [5, 7]])
>>> b[:, 0] #Die 1. Dimension ist beliebig, der 2. Dimensionsindex ist 0, der 3. Dimensionsindex ist beliebig---(2)
array([[1, 2],
       [5, 6]])
>>> b[:, 0, :] # (2)Synonym zu
array([[1, 2],
       [5, 6]])

Referenz

Recommended Posts

Über Python3 ... (Ellipsenobjekt)
Über die Einschlussnotation von Python
Integriertes Python-Objekt
Über Python tqdm.
Über die Python-Ausbeute
Integriertes Python-Objekt
Informationen zur Python-Vererbung
Über Python, range ()
Über Python Decorator
Informationen zur Python-Referenz
Über Python-Dekorateure
[Python] Über Multi-Prozess
Python Basic Memorandum Teil 3 - Informationen zur Objektorientierung
Über Python für Schleife
Über Funktionsargumente (Python)
[Python] Memo über Funktionen
Zusammenfassung über Python3 + OpenCV3
Über Python für ~ (Bereich)
[Python] Memo Über Fehler
Informationen zur Python-Entwicklungsumgebung
Python: Über Funktionsargumente
Objektorientiert in Python
Python, über die Ausnahmebehandlung
Über Python Pyramid Traversal
[Python] Kapitel 01-01 Über Python (Erster Python)
[Python] Informationen zur Standardeingabe
Über __all__ in Python
[Python] Informieren Sie sich über pip
Fabric unterstützt Python 3
Informationen zu Python-Objekten und -Klassen
Informationen zu Python-Variablen und -Objekten
[Python] Wert des Funktionsobjekts (?)
Über das Python-Modul venv
Nullobjektvergleich in Python
Python-Anfänger-Memorandum-Funktion
Über verschiedene Codierungen von Python 3
Über Python, len () und randint ()
Über Perl, Python, PHP, Ruby
Informationen zu Python-Datums- und Zeitzone
Memorandum über Korrelation [Python]
Ein Memorandum über den Python-Mock
Über die Funktionen von Python
Über "für _ in range ():" von Python
Informationen zu Python- und Betriebssystemoperationen
Python # Über Referenz und Kopie
Über Python sort () und reverse ()
Ein Hinweis zu [Python] __debug__
Prolog-Objektorientierung für Python-Programmierer
Python Hinweis: Über den Vergleich mit is
[Ubuntu] [Python] Objektverfolgung mit dlib
Informationen zur Installation der Serien Pwntools und Python2
Berühren Sie Python-Objekte in Elixir
Python
Python: Ein Hinweis zu Klasse 1 "Abstract"
[Python] Lassen Sie uns kurz über die Einschlussnotation schreiben
Über Python-Diktat und sortierte Funktionen
Über Python und Cython dtype