Python Tuple (z primeri)

V tem članku boste izvedeli vse o naborah Pythona. Natančneje, kaj so korice, kako jih ustvariti, kdaj jih uporabiti in različne metode, ki jih morate poznati.

Video: Python Lists in Tuples

Tuple v Pythonu je podobno seznamu. Razlika med obema je, da ne moremo spremeniti elementov korice, ko je dodeljena, medtem ko lahko spremenimo elemente seznama.

Ustvarjanje tuple

Nabor se ustvari tako, da se vsi elementi (elementi) postavijo v oklepaje (), ločeni z vejicami. Oklepaji niso obvezni, vendar je dobra praksa, da jih uporabite.

Torta ima lahko poljubno število elementov in so lahko različnih vrst (celo število, float, seznam, 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)

Izhod

 () (1, 2, 3) (1, "Pozdravljeni", 3.4) ("miška", (8, 4, 6), (1, 2, 3))

Nabor lahko ustvarite tudi brez uporabe oklepajev. To je znano kot pakiranje tuplev.

 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

Izhod

 (3, 4.6, 'pes') 3 4.6 pes

Ustvarjanje korice z enim elementom je nekoliko zapleteno.

Imeti en element v oklepajih ni dovolj. Za vezjo bomo potrebovali zadnjo vejico, ki bo pokazala, da je pravzaprav tuple.

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

Izhod

 

Dostopajte do Tuple Elements

Na različne načine lahko dostopamo do elementov korita.

1. Indeksiranje

Operator indeksa lahko uporabimo ()za dostop do predmeta v naboru, kjer se indeks začne od 0.

Torej bo tuple s šestimi elementi imelo indekse od 0 do 5. Če poskusite dostopati do indeksa zunaj obsega indeksa tuple (6,7, … v tem primeru), bo dvignil IndexError.

Indeks mora biti celo število, zato ne moremo uporabljati float ali drugih vrst. To bo povzročilo TypeError.

Prav tako se do ugnezdenih korit dostopa z uporabo ugnezdenega indeksiranja, kot je prikazano v spodnjem primeru.

 # 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

Izhod

 točk 4

2. Negativno indeksiranje

Python omogoča negativno indeksiranje svojih zaporedij.

Indeks -1 se nanaša na zadnjo postavko, -2 na drugo zadnjo postavko itd.

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

Izhod

 tp

3. Rezanje

Do številnih elementov v naboru lahko dostopamo z uporabo dvopičja operatorja 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(:))

Izhod

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

Rezanje je mogoče najbolje vizualizirati, če upoštevamo, da je indeks med elementi, kot je prikazano spodaj. Torej, če želimo dostopati do obsega, potrebujemo indeks, ki bo rezal del iz korita.

Rezanje elementov v Pythonu

Spreminjanje tuple

Za razliko od seznamov so nabori nespremenljivi.

To pomeni, da elementov korita ni mogoče spremeniti, ko so jim dodeljeni. Če pa je element sam spremenljiv podatkovni tip, kot je seznam, je mogoče njegove ugnezdene elemente spremeniti.

Nabor lahko dodamo tudi različnim vrednostim (prerazporeditev).

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

Izhod

 (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čajno uporabljamo nabore za heterogene (različne) vrste podatkov in sezname za homogene (podobne) vrste podatkov.
  • Ker so nabori nespremenljivi, je ponavljanje skozi nabor hitrejše kot na seznamu. Torej je rahlo povečanje zmogljivosti.
  • Torke, ki vsebujejo nespremenljive elemente, lahko uporabimo kot ključ za slovar. S seznami to ni mogoče.
  • Če imate podatke, ki se ne spremenijo, boste z njihovo implementacijo kot nabor zagotovili, da ostanejo zaščiteni pred pisanjem.

Zanimive Članki...