2016-02-06 14 views
6

krotka jest lista oddzielonych przecinkami wartościDlaczego krotki są ujęte w nawiasy okrągłe?

więc prawidłowa składnia zadeklarować krotka jest:

tup = 'a', 'b', 'c', 'd' 

Ale co często widzę to deklaracja tak:

tup = ('a', 'b', 'c', 'd') 

Jaka jest korzyść z załączania krotek w nawiasach?

+5

czytelność, na początek. –

+2

Ktoś kiedyś powiedział słynny” * Czasami nawias jest tylko nawiasem. * "Przecinek tworzy krotkę, nawiasy po prostu robią to, co zawsze robią. – uhoh

Odpowiedz

4

Nawiasy tylko nawiasach - działają poprzez zmianę pierwszeństwo. Jedynym wyjątkiem jest sytuacja, gdy nic nie jest zamknięte (tj. ()), w którym to przypadku wygeneruje pustą krotkę.

Powodem, dla którego można by użyć nawiasów, jest to, że spowoduje to dość spójną notację. Możesz napisać pustą krotkę i dowolną inną krotkę w ten sposób.

Innym powodem jest to, że normalnie chcemy, aby literał miał wyższy priorytet niż inne operacje. Na przykład dodanie dwóch krotek zostanie napisane (1,2)+(3,4) (jeśli pominąć nawiasy, otrzymamy 1,2+3,4, co oznacza, że ​​najpierw należy dodać 2 i 3, a następnie utworzyć krotkę - wynikiem jest 1,5,4). Podobna sytuacja występuje, gdy chcesz przekazać krotkę do funkcji f(1,2) oznacza wysłanie argumentów 1 i 2, podczas gdy f((1,2)) oznacza wysłanie krotki (1,2). Jeszcze innym jest, jeśli chcesz dołączyć krotkę wewnątrz krotki ((1,2),(3,4) i (1,2,3,4) to dwie różne rzeczy.

10

Z Python docs:

... tak, że zagnieżdżonych krotki są interpretowane poprawnie. Krotki mogą być danymi wejściowymi z nawiasami otaczającymi lub bez nich, chociaż często wymagane są nawiasy (jeśli krotka jest częścią większego wyrażenia ).

Przykład zagnieżdżonych krotki:

tuple = ('a', ('b', 'c'), 'd') 
1

To są dobre odpowiedzi! Oto tylko dodatkowym przykładem krotek w akcji (pakowanie/rozpakowywanie):

Jeśli zrobisz to

x, y = y, x 

co się dzieje jest:

tuple_1 = (y, x) 
(x, y) = tuple_1 

który jest taki sam jak:

tuple_1 = (y, x) 
x = tuple_1[0] 
y = tuple_1[1] 

We wszystkich tych przypadkach nawias nic nie rób w pytonie. Ale są pomocne, jeśli chcesz powiedzieć komuś czytając scenariusz: "hej! Tworzę tutaj krotkę! Jeśli nie zobaczysz przecinka, dodam te nawiasy, aby przyciągnąć twoje oko!

oczywiście odpowiedzi dotyczące zagnieżdżonych krotek są poprawne. Jeśli chcesz umieścić krotki wewnątrz coś podobnego krotki lub listy ...

A = x, (x, y) # same as (x, (x, y)) 
B = [x, (x, y)] 
+0

Dziękuję za edytowanie, ale wycofałem to. To jest ok i niezwyczajne wywoływanie skryptu Pythona po prostu "python" i wielu argumentowałoby, że termin "skrypt" jest lepszy niż "kod" po zastosowaniu do Pythona i wydaje mi się, że widziałem wiele przykładów wysokiej reputacji współpracowników dodających kilka słów kredytu do innych odpowiedzi przed dodaniem ich wkładu jako dodatkowej odpowiedzi. Kiedy jest wiele odpowiedzi, wskazówki te mogą pomóc czytelnikowi przychodzącemu na to pytanie. Z pewnością mi pomogli. – uhoh

Powiązane problemy