Heim > Backend-Entwicklung > Python-Tutorial > Warum benötigt Python ein abschließendes Komma für Ein-Element-Tupel?

Warum benötigt Python ein abschließendes Komma für Ein-Element-Tupel?

Mary-Kate Olsen
Freigeben: 2024-12-15 15:38:13
Original
966 Leute haben es durchsucht

Why Does Python Require a Trailing Comma for One-Element Tuples?

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')]
Nach dem Login kopieren

Überraschenderweise beim Drucken der Typen von Bei diesen Elementen stoßen wir auf eine Mischung aus Strings und Tupeln:

['a', 'b', ('c', 'd')]
Nach dem Login kopieren
<type 'str'>    
<type 'str'>    
<type 'tuple'>
Nach dem Login kopieren

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'>
Nach dem Login kopieren

Um den Beispielcode zu korrigieren, fügen Sie einfach Kommas zu den ersten beiden Elementen hinzu:

a = [('a',), ('b',), ('c', 'd')]
Nach dem Login kopieren

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'])
Nach dem Login kopieren

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!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage