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.
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
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.
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]])
Recommended Posts