Python tuple (s primjerima)

U ovom ćete članku naučiti sve o Pythonovim korijenima. Točnije, što su tuple, kako ih stvoriti, kada ih koristiti i razne metode s kojima biste trebali biti upoznati.

Video: Python popisi i korijeni

Korpa u Pythonu slična je popisu. Razlika između njih dvojice je u tome što ne možemo mijenjati elemente korte nakon što im je dodijeljena, dok možemo mijenjati elemente popisa.

Stvaranje korijena

Nabor se stvara stavljanjem svih stavki (elemenata) u zagrade (), odvojenih zarezima. Zagrade nisu obvezne, međutim dobra je praksa koristiti ih.

Tuple može imati bilo koji broj predmeta i mogu biti različitih vrsta (cijeli broj, plutajući, popis, niz itd.).

 # Different types of tuples # Empty tuple my_tuple = () print(my_tuple) # Tuple having integers my_tuple = (1, 2, 3) print(my_tuple) # tuple with mixed datatypes my_tuple = (1, "Hello", 3.4) print(my_tuple) # nested tuple my_tuple = ("mouse", (8, 4, 6), (1, 2, 3)) print(my_tuple)

Izlaz

 () (1, 2, 3) (1, 'Zdravo', 3.4) ('miš', (8, 4, 6), (1, 2, 3))

Tuple se također može stvoriti bez upotrebe zagrada. Ovo je poznato kao pakiranje tuple.

 my_tuple = 3, 4.6, "dog" print(my_tuple) # tuple unpacking is also possible a, b, c = my_tuple print(a) # 3 print(b) # 4.6 print(c) # dog

Izlaz

 (3, 4,6, 'pas') 3 4,6 pas

Stvaranje korijena s jednim elementom pomalo je nezgodno.

Imati jedan element u zagradama nije dovoljno. Trebat će nam zarez koji označava da je to zapravo korijen.

 my_tuple = ("hello") print(type(my_tuple)) # # Creating a tuple having one element my_tuple = ("hello",) print(type(my_tuple)) # # Parentheses is optional my_tuple = "hello", print(type(my_tuple)) # 

Izlaz

 

Pristupite skupljenim elementima

Postoje različiti načini na koje možemo pristupiti elementima korijena.

1. Indeksiranje

Operator indeksa možemo koristiti ()za pristup stavci u cjelini, gdje indeks započinje od 0.

Dakle, torta koja ima 6 elemenata imat će indekse od 0 do 5. Pokušaj pristupanja indeksu izvan raspona indeksa tuple (6,7, … u ovom primjeru) podići će IndexError.

Indeks mora biti cijeli broj, tako da ne možemo koristiti float ili druge vrste. To će rezultirati TypeError.

Jednako tako, ugniježđenim koritnicama pristupa se pomoću ugniježđenog indeksiranja, kao što je prikazano u donjem primjeru.

 # Accessing tuple elements using indexing my_tuple = ('p','e','r','m','i','t') print(my_tuple(0)) # 'p' print(my_tuple(5)) # 't' # IndexError: list index out of range # print(my_tuple(6)) # Index must be an integer # TypeError: list indices must be integers, not float # my_tuple(2.0) # nested tuple n_tuple = ("mouse", (8, 4, 6), (1, 2, 3)) # nested index print(n_tuple(0)(3)) # 's' print(n_tuple(1)(1)) # 4

Izlaz

 boda 4

2. Negativno indeksiranje

Python omogućuje negativno indeksiranje svojih sekvenci.

Indeks -1 odnosi se na posljednju stavku, -2 na drugu posljednju stavku i tako dalje.

 # Negative indexing for accessing tuple elements my_tuple = ('p', 'e', 'r', 'm', 'i', 't') # Output: 't' print(my_tuple(-1)) # Output: 'p' print(my_tuple(-6))

Izlaz

 tp

3. Rezanje

Širokom izboru predmeta možemo pristupiti pomoću dvotočke operatora rezanja :.

 # Accessing tuple elements using slicing my_tuple = ('p','r','o','g','r','a','m','i','z') # elements 2nd to 4th # Output: ('r', 'o', 'g') print(my_tuple(1:4)) # elements beginning to 2nd # Output: ('p', 'r') print(my_tuple(:-7)) # elements 8th to end # Output: ('i', 'z') print(my_tuple(7:)) # elements beginning to end # Output: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') print(my_tuple(:))

Izlaz

 ('r', 'o', 'g') ('p', 'r') ('i', 'z') ('p', 'r', 'o', 'g', 'r ',' a ',' m ',' i ',' z ')

Rezanje se može najbolje vizualizirati uzimajući u obzir da je indeks između elemenata kao što je prikazano u nastavku. Dakle, ako želimo pristupiti rasponu, trebamo indeks koji će izrezati dio iz korpice.

Rezanje elemenata u Pythonu

Mijenjanje korijena

Za razliku od popisa, torte su nepromjenjive.

To znači da se elementi torte ne mogu mijenjati nakon što im se dodijele. Ali, ako je sam element promjenjiva vrsta podataka poput popisa, njegove ugniježđene stavke mogu se mijenjati.

Također možemo dodijeliti korpicu različitim vrijednostima (preraspodjela).

 # Changing tuple values my_tuple = (4, 2, 3, (6, 5)) # TypeError: 'tuple' object does not support item assignment # my_tuple(1) = 9 # However, item of mutable element can be changed my_tuple(3)(0) = 9 # Output: (4, 2, 3, (9, 5)) print(my_tuple) # Tuples can be reassigned my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') # Output: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') print(my_tuple)

Izlaz

 (4, 2, 3, (9, 5)) ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')

We can use + operator to combine two tuples. This is called concatenation.

We can also repeat the elements in a tuple for a given number of times using the * operator.

Both + and * operations result in a new tuple.

 # Concatenation # Output: (1, 2, 3, 4, 5, 6) print((1, 2, 3) + (4, 5, 6)) # Repeat # Output: ('Repeat', 'Repeat', 'Repeat') print(("Repeat",) * 3)

Output

 (1, 2, 3, 4, 5, 6) ('Repeat', 'Repeat', 'Repeat')

Deleting a Tuple

As discussed above, we cannot change the elements in a tuple. It means that we cannot delete or remove items from a tuple.

Deleting a tuple entirely, however, is possible using the keyword del.

 # Deleting tuples my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') # can't delete items # TypeError: 'tuple' object doesn't support item deletion # del my_tuple(3) # Can delete an entire tuple del my_tuple # NameError: name 'my_tuple' is not defined print(my_tuple)

Output

 Traceback (most recent call last): File "", line 12, in NameError: name 'my_tuple' is not defined

Tuple Methods

Methods that add items or remove items are not available with tuple. Only the following two methods are available.

Some examples of Python tuple methods:

 my_tuple = ('a', 'p', 'p', 'l', 'e',) print(my_tuple.count('p')) # Output: 2 print(my_tuple.index('l')) # Output: 3

Output

 2 3

Other Tuple Operations

1. Tuple Membership Test

We can test if an item exists in a tuple or not, using the keyword in.

 # Membership test in tuple my_tuple = ('a', 'p', 'p', 'l', 'e',) # In operation print('a' in my_tuple) print('b' in my_tuple) # Not in operation print('g' not in my_tuple)

Output

 True False True

2. Iterating Through a Tuple

We can use a for loop to iterate through each item in a tuple.

 # Using a for loop to iterate through a tuple for name in ('John', 'Kate'): print("Hello", name)

Output

 Hello John Hello Kate

Advantages of Tuple over List

Since tuples are quite similar to lists, both of them are used in similar situations. However, there are certain advantages of implementing a tuple over a list. Below listed are some of the main advantages:

  • Obično koristimo korpe za heterogene (različite) vrste podataka i popise za homogene (slične) vrste podataka.
  • Budući da su torte nepromjenjive, prevlačenje kroz tuple brže je nego kod popisa. Dakle, postoji malo poboljšanje performansi.
  • Navodi koji sadrže nepromjenjive elemente mogu se koristiti kao ključ rječnika. Kod popisa to nije moguće.
  • Ako imate podatke koji se ne mijenjaju, njihova primjena kao skup jamčit će da ostaju zaštićeni od pisanja.

Zanimljivi članci...