Tuple Python (cu exemple)

În acest articol, veți afla totul despre tuplurile Python. Mai exact, ce sunt tuplurile, cum să le creezi, când să le folosești și diverse metode cu care ar trebui să fii familiarizat.

Video: liste și tupluri Python

Un tuplu în Python este similar cu o listă. Diferența dintre cele două este că nu putem schimba elementele unui tuplu odată ce acesta este atribuit, în timp ce putem schimba elementele unei liste.

Crearea unui tuplu

Un tuplu este creat prin plasarea tuturor elementelor (elementelor) în paranteze (), separate prin virgule. Parantezele sunt opționale, cu toate acestea, este o bună practică să le folosiți.

Un tuplu poate avea orice număr de articole și poate fi de diferite tipuri (întreg, float, listă, șir etc.).

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

Ieșire

 () (1, 2, 3) (1, „Bună ziua”, 3.4) („mouse”, (8, 4, 6), (1, 2, 3))

Un tuplu poate fi creat și fără a utiliza paranteze. Acest lucru este cunoscut sub numele de ambalare tuplu.

 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

Ieșire

 (3, 4.6, „câine”) 3 4.6 câine

Crearea unui tuplu cu un singur element este cam dificilă.

A avea un element între paranteze nu este suficient. Vom avea nevoie de o virgulă finală pentru a indica faptul că este, de fapt, un tuplu.

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

Ieșire

 

Accesați elementele tuplu

Există diferite moduri în care putem accesa elementele unui tuplu.

1. Indexare

Putem folosi operatorul index ()pentru a accesa un element dintr-un tuplu, unde indexul începe de la 0.

Deci, un tuplu care are 6 elemente va avea indici de la 0 la 5. Încercarea de a accesa un index în afara intervalului de indice tuplu (6,7, … în acest exemplu) va crește un IndexError.

Indexul trebuie să fie un număr întreg, deci nu putem folosi float sau alte tipuri. Acest lucru va avea ca rezultat TypeError.

La fel, tuplurile imbricate sunt accesate folosind indexarea imbricată, așa cum se arată în exemplul de mai jos.

 # 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

Ieșire

 punctele 4

2. Indexarea negativă

Python permite indexarea negativă pentru secvențele sale.

Indicele -1 se referă la ultimul element, -2 la al doilea ultim element și așa mai departe.

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

Ieșire

 tp

3. Felierea

Putem accesa o serie de articole dintr-un tuplu folosind operatorul de tranșare colon :.

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

Ieșire

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

Felierea poate fi vizualizată cel mai bine luând în considerare indexul între elementele prezentate mai jos. Deci, dacă dorim să accesăm o gamă, avem nevoie de indexul care va tăia porțiunea din tuplu.

Felierea elementelor în Python

Schimbarea unui tuplu

Spre deosebire de liste, tuplurile sunt imuabile.

Aceasta înseamnă că elementele unui tuplu nu pot fi schimbate odată ce au fost atribuite. Dar, dacă elementul este el însuși un tip de date modificabil, cum ar fi lista, elementele sale imbricate pot fi schimbate.

De asemenea, putem atribui un tuplu diferitelor valori (reatribuire).

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

Ieșire

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

  • În general, utilizăm tupluri pentru tipuri de date eterogene (diferite) și liste pentru tipuri de date omogene (similare).
  • Deoarece tuplurile sunt imuabile, iterația printr-un tupl este mai rapidă decât cu lista. Deci, există o ușoară creștere a performanței.
  • Tuplurile care conțin elemente imuabile pot fi folosite ca cheie pentru un dicționar. Cu listele, acest lucru nu este posibil.
  • Dacă aveți date care nu se modifică, implementarea lor ca tupl va garanta că acestea rămân protejate la scriere.

Articole interesante...