2016-06-18 32 views
16

Come posso creare una tupla costituita da una semplice tupla vuota, ovvero (())? Ho provato tuple(tuple()), tuple(tuple(tuple())), tuple([]) e tuple(tuple([])) che tutto mi ha dato ().Come creare una tupla di una tupla vuota in Python?

La ragione per cui utilizzo una cosa del genere è la seguente: Si supponga di avere n sacchetti con articoli m. Per rappresentare un elenco di elementi in una borsa, utilizzo uno tuple di lunghezza n in cui ogni elemento di quella tupla è un rappresentante per una borsa. Una borsa potrebbe essere vuota, che è etichettata da (). Ora, ad un certo punto, ho solo una borsa con gli oggetti vuoti!

+4

Vuoto tuple letterale è '()', 'non (,)' – vaultah

+0

@vaultah corretto. :) –

+0

"Ora, ad un certo punto, ho solo una borsa con oggetti vuoti!" Nota che la tupla è immutabile, quindi una tupla vuota è fondamentalmente inutile in quanto non puoi aggiungere elementi in seguito. Se lo desideri, dovresti prendere in considerazione l'utilizzo di un elenco. – DeepSpace

risposta

27

La tupla vuota è (), e una tupla con un solo elemento (ad esempio il numero intero 1), chiamato un singoletto (vedi here e here) è (1,). Pertanto, la tupla contenente solo la tupla vuota è

((),) 

Ecco alcuni risultati dimostrando che funziona:

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

Non mi sorprende questo (()) non ha funzionato, dal momento che le parentesi esterne vengono interpretati come quello - parentesi. Quindi (()) ==(), proprio come (2) == 2. Questo dovrebbe funzionare, però:

((),)