Python Tuple (s príkladmi)

V tomto článku sa dozviete všetko o n-ticiach Python. Konkrétnejšie, čo sú tice, ako ich vytvárať, kedy ich používať a rôzne metódy, ktoré by ste mali poznať.

Video: Zoznamy a n-tice Pythonu

N-tica v Pythone je podobná zoznamu. Rozdiel medzi nimi je v tom, že nemôžeme meniť prvky n-tice, akonáhle je priradená, zatiaľ čo môžeme meniť prvky zoznamu.

Vytvára sa n-tica

N-tica sa vytvorí umiestnením všetkých položiek (prvkov) do zátvoriek ()oddelených čiarkami. Zátvorky sú voliteľné, je však dobrým zvykom ich používať.

N-tica môže mať ľubovoľný počet položiek a môže byť rôznych typov (celé číslo, float, zoznam, reťazec atď.).

 # 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)

Výkon

 () (1, 2, 3) (1, „Hello“, 3.4) („myš“, (8, 4, 6), (1, 2, 3))

N-ticu je možné vytvoriť aj bez použitia zátvoriek. Toto sa nazýva Tuple packing.

 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

Výkon

 (3, 4,6, „pes“) 3 4,6 psa

Vytvorenie n-tice s jedným prvkom je trochu zložité.

Mať jeden prvok v zátvorke nestačí. Budeme potrebovať koncovú čiarku, ktorá naznačuje, že v skutočnosti ide o n-ticu.

 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)) # 

Výkon

 

Prístup k prvkom n-tice

Existuje niekoľko spôsobov, ako môžeme získať prístup k prvkom n-tice.

1. Indexovanie

Na ()prístup k položke v n-tici, kde index začína od 0, môžeme použiť operátor indexu.

Takže n-tica, ktorá má 6 prvkov, bude mať indexy od 0 do 5. Pokus o prístup k indexu mimo rozsah indexu n-tice (6,7, … v tomto príklade) vyvolá hodnotu IndexError.

Index musí byť celé číslo, takže nemôžeme použiť float alebo iné typy. Výsledkom bude TypeError.

K vnoreným n-ticiam sa rovnako pristupuje pomocou vnoreného indexovania, ako je to znázornené v príklade nižšie.

 # 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

Výkon

 body 4

2. Negatívne indexovanie

Python umožňuje negatívne indexovanie svojich sekvencií.

Index -1 sa vzťahuje na poslednú položku, -2 na druhú poslednú položku atď.

 # 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))

Výkon

 tp

3. Krájanie

K dvojici položiek v n-tici môžeme získať prístup pomocou dvojbodky operátora krájania :.

 # 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(:))

Výkon

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

Krájanie je možné najlepšie vizualizovať zvážením indexu medzi prvkami, ako je uvedené nižšie. Ak teda chceme získať prístup k rozsahu, potrebujeme index, ktorý rozdelí časť z n-tice.

Krájanie prvkov v Pythone

Zmena n-tice

Na rozdiel od zoznamov sú n-tice nemenné.

To znamená, že prvky n-tice nie je možné zmeniť, akonáhle sú priradené. Ak je ale prvok sám o sebe premenlivým údajovým typom, ako je napríklad zoznam, je možné jeho vnorené položky meniť.

Ticiu môžeme priradiť aj rôzne hodnoty (preradenie).

 # 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)

Výkon

 (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:

  • Všeobecne používame n-tice pre heterogénne (rôzne) dátové typy a zoznamy pre homogénne (podobné) dátové typy.
  • Pretože n-tice sú nemenné, iterácia cez n-ticu je rýchlejšia ako v zozname. Dochádza teda k miernemu zvýšeniu výkonu.
  • N-tice, ktoré obsahujú nemenné prvky, sa dajú použiť ako kľúč pre slovník. U zoznamov to nie je možné.
  • Ak máte údaje, ktoré sa nemenia, implementácia ich ako n-tica zaručí, že zostanú chránené proti zápisu.

Zaujímavé články...