Ein-Element-Tupel: Ein Komma-Dilemma
Beim Umgang mit Tupeln entsteht ein häufiges Missverständnis, wenn versucht wird, Tupel mit nur einem Element zu erstellen . In solchen Fällen könnte man annehmen, dass es ausreichen würde, eine Zeichenfolge in Klammern zu setzen, aber das ist nicht der Fall.
Betrachten Sie das folgende Beispiel:
a = [('a'), ('b'), ('c', 'd')]
Überraschenderweise beim Drucken der Typen von Bei diesen Elementen stoßen wir auf eine Mischung aus Strings und Tupeln:
['a', 'b', ('c', 'd')]
<type 'str'> <type 'str'> <type 'tuple'>
Warum? passiert das? Warum werden die ersten beiden Elemente als Strings interpretiert?
Die Antwort liegt in der Syntax von Tupeln. Um ein Tupel mit einem einzelnen Element zu erstellen, muss nach dem Wert ein Komma eingefügt werden, das angibt, dass es sich um ein Tupel handelt.
type(('a')) <type 'str'> type(('a',)) <type 'tuple'>
Um den Beispielcode zu korrigieren, fügen Sie einfach Kommas zu den ersten beiden Elementen hinzu:
a = [('a',), ('b',), ('c', 'd')]
Diese Syntax stellt sicher, dass alle Elemente in der Liste Tupel sind.
Alternativ, wenn man das Trailing findet Da die Kommasyntax unattraktiv ist, können sie die Funktion tuple() verwenden, die eine Liste als Argument verwendet und ein Tupel zurückgibt:
x = tuple(['a'])
Das obige ist der detaillierte Inhalt vonWarum benötigt Python ein abschließendes Komma für Ein-Element-Tupel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!