2016-06-18 11 views
16

Wie kann ich ein Tupel erstellen, das nur aus einem leeren Tupel besteht, d. H. (())? Ich habe tuple(tuple()), tuple(tuple(tuple())), tuple([]) und tuple(tuple([])) versucht, die mir () gaben.Wie erstelle ich ein Tupel eines leeren Tupels in Python?

Der Grund, dass ich so etwas verwende, ist wie folgt: Angenommen, Sie haben n Taschen mit m Artikel. Um eine Liste von Gegenständen in einer Tüte darzustellen, verwende ich eine tuple der Länge n, wobei jedes Element dieses Tupels ein Vertreter für eine Tüte ist. Eine Tasche könnte leer sein, die mit () gekennzeichnet ist. Jetzt, zu einem bestimmten Zeitpunkt, habe ich nur eine Tasche mit leeren Gegenständen!

+4

Leeres Tupel wörtliche ist '()', nicht '(,)' – vaultah

+0

@vaultah korrigiert. :) –

+0

"Jetzt, an einem Anfangspunkt, habe ich nur eine Tasche mit leeren Gegenständen!" Beachten Sie, dass das Tupel unveränderlich ist, daher ist ein leeres Tupel grundsätzlich nutzlos, da Sie später keine Elemente hinzufügen können. Wenn Sie möchten, sollten Sie stattdessen eine Liste verwenden. – DeepSpace

Antwort

27

Der leere Tupel (), und ein Tupel mit nur einem Punkt (wie beispielsweise die ganze Zahl 1), eine so genannte Singleton (siehe here und here) (1,) ist. Daher enthält das Tupel nur das leere Tupel

((),) 

Hier einige Ergebnisse zeigen, sind die funktioniert:

>>> a=((),) 
>>> type(a) 
<type 'tuple'> 
>>> len(a) 
1 
>>> a[0] 
() 
>>> type(a[0]) 
<type 'tuple'> 
>>> len(a[0]) 
0 
3

Ich bin nicht überrascht, dass das (()) funktionierte nicht, da die äußeren Klammern interpretiert erhalten als das - Klammern. So (()) ==(), wie (2) == 2. Dies sollte funktionieren, aber:

((),) 
Verwandte Themen