2016-06-18 10 views
16

Jak utworzyć krotkę składającą się z pustej krotki, tj. (())? Wypróbowałem tuple(tuple()), tuple(tuple(tuple())),i tuple(tuple([])), które dały mi ().Jak utworzyć krotkę pustej krotki w Pythonie?

Powód, dla którego używam takich rzeczy jest następujący: Załóżmy, że masz torby n z elementami m. Aby przedstawić listę przedmiotów w torbie, używam tuple o długości n, gdzie każdy element tej krotki jest reprezentatywny dla torby. Torba może być pusta, oznaczona etykietą (). Teraz, w pewnym punkcie początkowym, mam tylko jedną torbę z pustymi przedmiotami!

+4

Pusta krotka dosłowny jest '()', nie '(,)' – vaultah

+0

@vaultah poprawione. :) –

+0

"Teraz, w pewnym punkcie początkowym, mam tylko jedną torbę z pustymi przedmiotami!" Zauważ, że tuple jest niezmienna, więc pusta krotka jest w zasadzie bezużyteczna, ponieważ nie możesz później dodawać do niej przedmiotów. Jeśli chcesz, powinieneś rozważyć użycie listy. – DeepSpace

Odpowiedz

27

Pusta krotka jest () i krotka z jednego elementu (takich jak całkowita 1), nazywany Singleton (patrz here i here) jest (1,). Dlatego krotka zawierająca tylko pustą krotka jest

((),) 

Oto niektóre wyniki pokazujące, że działa:

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

Nie jestem zaskoczony tym (()) nie działa, ponieważ zewnętrzne nawiasy się interpretować w ten sposób - nawiasy. Więc (()) ==(), podobnie jak (2) == 2. To powinno działać, jednakże:

((),) 
Powiązane problemy