Cum să creați tupluri în Python și de ce să le folosiți?

Tuple este un tip de date încorporat în Python care este utilizat pentru a stoca o colecție de date. Este similar cu o listă, dar este puțin mai rapid.

Cu toate acestea, limitările sale fac listele mai de dorit în unele situații. În acest articol, voi explica tot ce trebuie să știți pentru a începe să utilizați tupluri.

Ce este un tuplu?

După cum am menționat mai devreme, un tuplu este unul dintre tipurile de date încorporate în Python utilizate pentru a stoca colecții de date. Este similar cu o listă Python prin faptul că stochează date într-un format iterabil, asemănător matricei. Spre deosebire de o listă, totuși, un tuplu este imuabil. Adică, odată creat, valorile nu pot fi modificate.

Elementele suplimentare nu pot fi adăugate și elementele existente nu pot fi eliminate. Prin urmare, un tuplu este ideal atunci când stocați date care nu se modifică. Poate fi chiar o colecție de date de diferite tipuri. În secțiunea următoare, vom discuta despre diferitele moduri de a crea tupluri în Python.

Cum se creează un tuplu în Python?

Există cel puțin trei moduri de a crea tupluri în Python. În această secțiune, vom acoperi trei dintre cele mai comune metode pe care probabil le veți utiliza și le veți vedea atunci când citiți codul de la alții.

Pentru a rula următoarele exemple de cod, va trebui să aveți instalat Python. Dacă nu aveți deja instalat Python, iată un ghid util pentru instalarea Python. Alternativ, puteți rula codul într-un timp de rulare Python online, cum ar fi Google Colab.

#1. Utilizarea literalului tuplu (paranteze)

Cel mai comun mod de a vedea tuplurile definite în Python este plasarea unei colecții de valori între paranteze. Aceste valori sunt separate prin virgule. Următorul exemplu ilustrează această metodă:

# Creates a tuple by placing values between parentheses
values = (1, 2, 3)

# Printing out the tuple to the screen
print(values)

# Printing out the type of values variable
print(type(values))

Rularea acestui cod va produce următoarele:

După cum puteți vedea din rezultat, tuplu-ul deține valorile cu care l-am inițializat. Este, de asemenea, de tipul .

Când creați tupluri în Python, parantezele nu sunt necesare. Prin urmare, această valoare = 1, 2, 3 este la fel de validă ca și această valoare = (1, 2, 3). Este, totuși, recomandat să folosiți paranteze pentru a face codul mai ușor de înțeles.

Crearea de tupluri cu un element în Python este puțin dificilă. În loc să plasați doar un element între paranteze, trebuie să adăugați și o virgulă finală. Iată un exemplu pentru a ilustra:

# Without trailing comma, this won't create a tuple
not_a_tuple = (1)

# With trailing comma, this will create a tuple
a_tuple = (1,)

# Printing not_a_tuple
print(not_a_tuple)

# Printing not_a_tuple's data type
print(type(not_a_tuple))

# Printing a_tuple
print(a_tuple)

# Printing a_tuple's data type
print(type(a_tuple))

Rulând codul de mai sus, veți vedea că not_a_tuple devine un int cu valoarea 1. Acest lucru este important de reținut atunci când creați tupluri.

#2. Folosind funcția de constructor

A doua metodă pentru a crea tupluri în Python utilizează funcția de constructor tuplu. În această metodă, apelați funcția, trecând un obiect iterabil ca o listă ca argument. Acesta va fi convertit într-un tuplu. Iată un exemplu:

# Creating tuple from a list of values
values = tuple([1, 2, 3])

# Printing out the values
print(values)

# Printing out the data type of the values identifier
print(type(values))

După cum puteți vedea, utilizarea funcției obține același rezultat ca și utilizarea literalului. Cu toate acestea, funcția vă permite să creați un tuplu pe baza unei valori dinamice, cum ar fi o listă ale cărei valori sunt cunoscute doar în timpul execuției. Cu prima metodă, ar trebui să cunoașteți valorile sau identificatorii care alcătuiesc tuplul dvs. în timp ce scrieți codul.

  Cum să personalizați aplicația Stocks pe Apple Watch

#3. Crearea unui tuplu gol

Pe măsură ce lucrați cu tupluri în cod, poate fi necesar să creați tupluri goale. Tuplurile goale sunt create așa cum v-ați aștepta. Puteți folosi fie constructorul tuplu, fie literalul to atunci când le creați. Iată un exemplu care demonstrează cum să utilizați oricare dintre metode:

# Using the tuple literal
empty_tuple_1 = ()

# Using the constructor
empty_tuple_2 = tuple()

Tuplurile goale sunt utile atunci când reprezintă un set gol de rezultate. Luați în considerare următoarea funcție:

def create_range(start, end):
    return tuple(range(start, end))

Această funcție creează un tuplu cu valori de la început, până la valoarea finală pe care o transmiteți. Dacă doriți să repetați rezultatele funcției, ați folosi ceva de genul acesta:

my_values = create_range(0, 5)

for value in my_values:
    pass

Dacă ați furnizat 5 și 5 funcției create_range, rezultatul ar fi un tuplu gol. Și dacă ați încerca să repetați peste el, ați avea doar zero iterații, iar codul dvs. ar proceda normal.

Pe de altă parte, dacă nu existau tupluri goale și, în schimb, obțineți valoarea None, atunci încercarea de a repeta peste aceasta ar genera o eroare. Pentru a preveni blocarea programului, ar trebui să implementați un test pentru cazul limită în care funcția create_range returnează None sau orice altă valoare care reprezintă un tuplu gol.

Acest lucru ar duce la un cod dezordonat. În mod ideal, ați dori să evitați pe cât posibil cazurile speciale. Aceasta înseamnă că valoarea returnată a tuturor funcțiilor ar trebui să aibă o interfață identică, astfel încât codul dvs. să funcționeze în cazul general cât mai mult posibil. În acest caz, aceasta înseamnă returnarea unui tuplu tot timpul, deși, uneori, acesta va fi gol.

Cum se accesează elemente

Există două moduri de a accesa elementele unui tuplu în Python. Prima metodă este prin index, iar a doua este prin destructurarea elementelor. În primul rând, vom examina cum să accesăm elementele prin index.

Accesarea elementelor după index

Accesarea elementelor după index este similară cu modul în care ați accesa elementele listei după index. Acest lucru se face folosind notația dintre paranteze pătrate. Tuplurile folosesc un sistem de indexare bazat pe zero, ceea ce înseamnă că primul element este indicele 0, iar cel de după este indicele 1 până la ultimul element.

Exemplul de mai jos demonstrează cum să accesați elemente prin index:

# Creating a tuple
values = (1, 2, 3, 4)

# Accessing the first element
first_element = values[0]

# Accessing the fourth element(index 3)
fourth_element = values[3]

De asemenea, puteți utiliza indexarea negativă. Elementul cu indice -1 este ultimul element, iar elementul cu indice -2 este al doilea din ultimul element.

# Creating the tuple
values = (1, 2, 3, 4)

# Accessing the last element
last_element = values[-1]

# Accessing the second from last element
second_from_last_element = values[-2] 

În plus, puteți accesa și subcolecții de elemente dintr-un tuplu prin felierea acestuia. Acest lucru este similar cu modul în care ați tăia o listă. Notația este următoarea [<start>: <end>: <skip>]. Următorul exemplu demonstrează felierea:

# Creating the tuple
values = (1, 2, 3, 4, 5, 6, 7)

# Getting the first three elements
values[1: 3]

# Getting every other element
values[::2]

Iterarea peste elemente

Un tuplu este un obiect iterabil în Python. Prin urmare, puteți itera elementele sale folosind o buclă for, așa cum se arată în exemplul următor:

values = (1, 2, 3, 4)

for value in values:
    print(value)

Această metodă de accesare a elementelor este ideală atunci când doriți să accesați toate elementele din tuplu.

  Cum să eliminați solicitările LinkedIn prin cuvinte cheie în Chrome

Accesarea elementelor prin destructurare

Pentru a explica destructurarea, luați în considerare următorul scenariu în care încercăm să obținem diferitele elemente într-un tuplu.

# Creating the tuple to record a user's information
person_record = (1, 'John Doe', '[email protected]')

# Accessing the different elements in the tuple to use in our code
id = person_record[1]
name = person_record[2]
email = person_record[3]

Python ne permite să folosim o metodă mai convenabilă pentru a accesa valorile, așa cum este ilustrat mai jos:

# Creating the tuple to record a user's information
person_record = (1, 'John Doe', '[email protected]')

id, name, email = person_record

Aceasta se numește destructurare. Aceasta este prima variabilă, id în acest caz, i se va atribui prima valoare în tuplu și a doua variabilă celui de-al doilea element. Aceasta continuă până la sfârșitul tuplului. Exemplul de mai sus este echivalent cu acesta:

id, name, email = (1, 'John Doe', '[email protected]')

În acest caz, în loc să stocăm tuplu într-o variabilă, îl destructuram imediat. Când combinați acest lucru cu cunoștințele că nu trebuie să utilizați paranteze atunci când creați tupluri, atunci puteți scrie codul astfel.

id, name, email = 1, 'John Doe', '[email protected]'

La sfârșitul tuturor acestora, veți avea variabile id, nume și e-mail cu valorile 1, „John Doe” și „[email protected]‘. Acesta este un mod convenabil și succint de a crea variabile în Python pe care le veți vedea în codul de producție. Te ajută să știi că în centrul acestei sintaxe elegante se află conceptul de tupluri.

Diferențele dintre tuplu și listă

Deși cele două sunt similare, unele diferențe cheie le fac pe fiecare mai potrivită pentru un anumit caz de utilizare. Înțelegerea acestor diferențe vă va ajuta să decideți cel mai bun tip de date pe care să îl utilizați și să scrieți un cod mai bun și mai eficient.

AspectTupleListMemory StorageStocat în memoria adiacentă Stocați în diferite părți ale memoriei. mărci.De obicei, folosit pentru a stoca o colecție de valori similare, cum ar fi mărcile.

Avantajele unui tuplu

#1. Este Mai Rapid

Datorită modului în care valorile unui tuplu sunt stocate în memoria contiguă, accesarea valorilor este mai rapidă în comparație cu o listă. Cu toate acestea, deoarece odată create, nu pot fi modificate, tuplurile nu sunt întotdeauna cea mai bună structură de date de utilizat pentru a stoca colecții de valori.

Cazul lor de utilizare ideal este stocarea în memorie a multor date care nu se modifică, dar care vor fi accesate de mai multe ori în timpul execuției programului. În acest caz, programul tău va beneficia enorm de pe urma creșterii performanței tuplurilor.

#2. Returnează mai multe valori

Puteți folosi tupluri pentru a returna mai multe valori dintr-o funcție și pentru a destructura rezultatul. De exemplu:

from random import randint

def create_two_numbers():
    first_num = randint(0, 9)
    second_num = randint(0, 9)

    return first_num, second_num

first_num, second_num = create_two_numbers()

În acest exemplu, avem o funcție care creează două numere aleatoare și le returnează pe ambele într-un tuplu. Instrucțiunea return first_num, second_num este echivalentă cu scrierea return (first_num, second_num). Acest lucru se datorează faptului că parantezele sunt opționale atunci când se creează tupluri. Pentru a accesa rezultatul, îl destructuram.

#3. Valorile sunt protejate la scriere

Tuplurile sunt imuabile odată create. Ele sunt, prin urmare, ideale pentru stocarea în memorie a datelor care nu se modifică în timpul execuției programului. Acestea asigură că nu suprascrieți accidental datele în altă parte în cod.

#4. Stocați mai multe tipuri de date

Tuplurile vă permit să stocați valori pentru mai multe tipuri de date. Acest lucru vă permite să creați înregistrări de date, cum ar fi stocarea detaliilor unui utilizator într-un tuplu. De asemenea, puteți stoca articole mai complicate, cum ar fi funcții, dicționare, alte tupluri și chiar liste.

  Cum să remediați problema cu Apple Watch care nu primește notificări

Metode comune ale tuplilor

#1. numara()

Obiectul tuplu conține metoda count, care numără de câte ori apare un element. De exemplu:

# Creating a tuple with several numbers
values = (1, 2, 3, 4, 5, 4, 4, 6)

# Counting the number of fours
n_fours = values.count(4)

# Prining out the number of fours
print(n_fours)

Din acest exemplu, putem vedea că numărul 4 apare exact de trei ori în tuplul nostru.

#2. index()

Metoda indexului poate fi folosită pentru a găsi indexul primei apariții a unei valori într-un tuplu. Dacă valoarea nu există, va fi aruncată o excepție ValueError. Iată un cod pentru a ilustra modul în care funcționează metoda indexului:

# Creating a tuple with several numbers
values = (1, 2, 3, 4, 5, 4, 4, 6)

# Search for index of 4
index_of_four = values.index(4)
print("Index of four:", index_of_four)

# Search for index of 9
index_of_nine = values.index(9)
print("Index of nine:", index_of_nine)

Și când rulăm codul de mai sus, aceasta este rezultatul:

În acest caz, indicele lui 4 este 3, iar codul a rulat fără probleme. Dar când a fost vorba de găsirea indicelui de 9, programul a ridicat o excepție. Este important să gestionați astfel de excepții atunci când scrieți programe Python care folosesc metoda indexului.

#3. len()

La fel ca toate obiectele iterabile din Python, tuplurile au o proprietate de lungime pe care o puteți accesa atunci când treceți în tuplu ca argument funcției len().

# Creating a tuple
values = (1, 2, 3, 4)

# Getting the length
length = len(values)

# Print the output
print(length)

Acesta este rezultatul rulării codului de mai sus.

#4. min() și max()

Metodele min și max funcționează prin bucla prin fiecare element într-un iterabil și comparând dacă este mai mare sau mai mic decât cel de dinainte. În cele din urmă, max va returna cel mai mare element din iterabil, în timp ce min returnează cel mai mic.

Cu cifre, operațiunea este evidentă. Cu șiruri, Python va folosi ordinea alfabetică. Cel mai mic cuvânt, returnat cu min, este primul cuvânt dacă șirurile au fost scrise în ordine alfabetică. În timp ce cel mai mare cuvânt este ultimul cuvânt. Dacă iterabilul conține un amestec de diferite tipuri de date, atunci operațiunile vor eșua ambele, deoarece Python nu știe cum să compare diferite tipuri de date.

Iată un exemplu de cod:

# Creating tuple with values
values = (1, 2, 3, 4, 5)

# Getting the largest value
largest = max(values)

# Getting the smallest value
smallest = min(values)

# Output the results
print(largest)
print(smallest)

#5. sortat()

Funcția sortată din Python preia un obiect iterabil și returnează o listă a elementelor sortate. Puteți apela funcția sortată, puteți trece un tuplu ca argument și puteți obține elementele tuplului sortate într-o listă. Pentru a converti lista sortată într-un tuplu, puteți utiliza funcția de constructor. Iată un exemplu:

# Creating a tuple with values in random order
values = (1, 5, 3, 3, 2, 4)

# Using sorted to sort the values into a list
sorted_list = sorted(values)

# Converting the list into a tuple
sorted_tuple = tuple(sorted_list)

# Printing the output
print(sorted_tuple)

#6. Adunarea și înmulțirea tuplurilor

Operația de adăugare pe două tupluri pur și simplu le concatenează împreună. Operația de înmulțire repetă elementele unui tuplu de atâtea ori cât valoarea cu care ați înmulțit. Iată un exemplu pentru a ilustra cele două exemple.

# Create a tuple with some values
values = (1, 2, 3, 4, 5)

# Create a new tuple using addition
added = values + values

# Create a new tuple using multiplication
multiplied = values * 2

print("values + values =", added)
print("values * 2 =", multiplied)

Cuvinte finale

În acest articol, ați aflat că:

  • Tuplurile sunt obiecte asemănătoare unei liste utilizate pentru stocarea colecțiilor de valori.
  • Spre deosebire de liste, acestea sunt imuabile.
  • Sunt mai rapide și mai eficiente decât listele.
  • Ele pot fi construite folosind paranteze și separând valorile cu virgule.
  • Ele pot fi, de asemenea, construite folosind funcția de constructor tuplu.
  • Puteți accesa valori individuale utilizând un sistem de indici bazat pe zero.
  • De asemenea, puteți destructura valori din tuplu.
  • De asemenea, puteți repeta peste valori folosind o buclă for.
  • Diferitele metode pe care le puteți folosi cu un tuplu.

Apoi, poate doriți să verificați mai mult conținut Python, cum ar fi metodele Python Listă și metodele Python Dictionary.