Tuplurile sunt un tip de tip de date al unei variabile care ne permite să stocăm mai multe obiecte într-un singur loc. Un tuplu este o colecție de articole ordonată și imuabilă (nu putem actualiza elementele dintr-un tuplu). Există 4 structuri de date Python încorporate pentru a stoca elemente, una dintre ele este un tuplu, iar celelalte sunt Listă, Dicționar și Set, fiecare cu propriul set de proprietăți și utilizare. Sunt scrise între paranteze rotunde.
Sortarea unui tuplu în Python
Folosind sort()
Metoda sort() este adesea folosită pentru a sorta elementele unei liste în ordine crescătoare, primul element fiind sortat implicit. Putem sorta un tuplu transformându-l într-o listă mai întâi și apoi aplicăm această funcție. Această funcție sortează lista în loc și returnează Nici unul.
Intrare
tuple_ = ('Itika', 'Arshia', 'Peter', 'Parker') list(tuple_).sort() print(tuple_) print(type(tuple_))
Ieșire:
('Itika', 'Arshia', 'Peter', 'Parker')
Folosind sortat()
În Python, utilizați funcția încorporată sorted() pentru a sorta un tuplu. Tuplu ar trebui să fie transmis ca argument la funcția sorted(). Elementele tuplu sunt sortate (în mod implicit) în ordine crescătoare în lista returnată de funcție. Putem folosi un tuplu pentru a converti acest tip de date de listă într-un tuplu ().
Parametrul invers al funcției sorted() poate specifica și ordinea de sortare. Crescător este ordinea implicită de sortare. Elementele sunt sortate în ordine descrescătoare când este setat reverse=True. De asemenea, putem specifica o funcție cheie ale cărei valori returnate sunt folosite pentru sortarea articolelor. Luăm un tuplu, tuple_, având valori întregi și îl sortăm în ordine crescătoare în programul următor.
Intrare
tuple_ = (5, 2, 24, 3, 1, 6, 7) sorted_ = tuple(sorted(tuple_)) print('Sorted Tuple :', sorted_) print(type(sorted_))
Ieșire:
Sorted Tuple : (1, 2, 3, 5, 6, 7, 24)
Acum sortăm tuplu în ordine descrescătoare folosind aceeași funcție. Treceți reverse=True la funcția sorted() pentru a sorta tuplu în ordine descrescătoare.
Intrare
tuple_ = (5, 2, 24, 3, 1, 6, 7) sorted_ = tuple(sorted(tuple_, reverse=True)) print('Sorted Tuple :', sorted_) print(type(sorted_))
Ieșire:
Sorted Tuple : (24, 7, 6, 5, 3, 2, 1)
Sortarea unui tuplu pe baza unei funcții cheie
O cheie este o funcție care ia o valoare și returnează o valoare. Pentru fiecare dintre elementele din tuplu, această funcție cheie este aplicată, iar valoarea returnată este utilizată pentru comparație pentru a sorta elementele. În programul următor, sortăm tuplu de șiruri în funcție de lungimea șirurilor. În acest caz, putem folosi funcția încorporată len() ca cheie.
Intrare
șir de caractere în java
tuple_ = ('abhd', 'sbchcwsc', 'sjs', 'sxshs') sorted_ = tuple(sorted(tuple_, key=len)) print('Sorted Tuple :', sorted_) print(type(sorted_))
Ieșire:
Sorted Tuple : ('sjs', 'abhd', 'sxshs', 'sbchcwsc')
Lista de sortare a tuplurilor
Folosind sortat()
Să ne uităm la cum să sortăm o listă în Python folosind un tuplu. Luați în considerare următorul scenariu: dorim să sortăm lista de tupluri. Trebuie să sortăm tuplurile în funcție de orice cheie care ni s-a dat. Acest lucru poate fi realizat folosind funcția sorted(), care sortează elementele folosind o cheie și stochează indexul cheii pentru sortarea tuplurilor date. Execuția Python a acestei abordări este după cum urmează:
Intrare
# Sorting list of tuples according to a key def middle(n): return n[1] # function to sort the tuple def sort(list_of_tuples): return sorted(list_of_tuples, key = middle) # driver code list_ = [(34, 21, 56), (24, 12, 32), (42, 34, 42), (27, 11, 32)] print('Sorted list of Tuples:'), print(sort(list_))
Ieșire:
Sorted list of Tuples: [(27, 11, 32), (24, 12, 32), (34, 21, 56), (42, 34, 42)]
Folosind Bubble Sort
Bubble sort este doar un algoritm de sortare pentru sortarea unei liste de orice număr de elemente. Dacă elementele alăturate dintr-o listă dată sunt în ordinea incorectă, le schimbă. Apoi repetă acest proces până când toate elementele au fost sortate.
În acest exemplu, vom folosi algoritmul de sortare cu bule pentru a sorta o listă de tupluri.
Intrare
roll = [('Arshia', 26), ('Itika', 53), ('Peter', 82), ('Parker', 74), ('MJ', 45)] first = 0 last = len(roll) for k in range(0, last): for l in range(0, last-k-1): if (roll[l][first] > roll[l + 1][first]): new_item = roll[l] roll[l]= roll[l + 1] roll[l + 1]= new_item print(roll)
Ieșire:
[('Arshia', 26), ('Itika', 53), ('MJ', 45), ('Parker', 74), ('Peter', 82)]