logo

Ako triediť Tuple v Pythone

N-tice sú typ dátového typu premennej, ktorý nám umožňuje uložiť viacero objektov na jedno miesto. N-tica je usporiadaná a nemenná (nemôžeme aktualizovať prvky v n-tici) kolekcia položiek. Existujú 4 vstavané dátové štruktúry Pythonu na ukladanie prvkov, jedna z nich je n-tica a ďalšie sú zoznam, slovník a sada, pričom každá má svoju vlastnú sadu vlastností a použitia. Sú napísané v okrúhlych zátvorkách.

skúste catch block java

Triedenie Tuple v Pythone

Použitie sort()

Metóda sort() sa často používa na triedenie prvkov zoznamu vo vzostupnom poradí, pričom prvý prvok je štandardne zoradený. N-ticu môžeme zoradiť tak, že ju najskôr skonvertujeme na zoznam a potom použijeme túto funkciu. Táto funkcia zoradí zoznam na mieste a vráti Žiadne.

Vstup

 tuple_ = ('Itika', 'Arshia', 'Peter', 'Parker') list(tuple_).sort() print(tuple_) print(type(tuple_)) 

Výkon:

 ('Itika', 'Arshia', 'Peter', 'Parker') 

Použitie zoradené ()

V Pythone použite vstavanú funkciu sort() na triedenie Tuple. N-tica by sa mala odovzdať ako argument funkcii sorted(). Položky n-tice sú zoradené (štandardne) vo vzostupnom poradí v zozname vrátenom funkciou. Môžeme použiť n-ticu na konverziu tohto dátového typu zoznamu na n-ticu ().

Obrátený parameter k funkcii sort() môže tiež určiť poradie zoradenia. Vzostupne je predvolené poradie zoradenia. Položky sú zoradené v zostupnom poradí, keď je nastavená možnosť reverse=True. Môžeme tiež určiť kľúčovú funkciu, ktorej vrátené hodnoty sa používajú na triedenie položiek. Zoberieme n-ticu, tuple_, ktorá má celočíselné hodnoty, a zoradíme ju vo vzostupnom poradí v nasledujúcom programe.

Vstup

 tuple_ = (5, 2, 24, 3, 1, 6, 7) sorted_ = tuple(sorted(tuple_)) print('Sorted Tuple :', sorted_) print(type(sorted_)) 

Výkon:

 Sorted Tuple : (1, 2, 3, 5, 6, 7, 24) 

Teraz triedime n-ticu v zostupnom poradí pomocou rovnakej funkcie. Pass reverse=Pravda pre funkciu sorted() na zoradenie n-tice v zostupnom poradí.

Vstup

 tuple_ = (5, 2, 24, 3, 1, 6, 7) sorted_ = tuple(sorted(tuple_, reverse=True)) print('Sorted Tuple :', sorted_) print(type(sorted_)) 

Výkon:

 Sorted Tuple : (24, 7, 6, 5, 3, 2, 1) 

Triedenie n-tice na základe funkcie kľúča

Kľúč je funkcia, ktorá preberá hodnotu a vracia hodnotu. Pre každú z položiek v n-tici sa použije táto kľúčová funkcia a vrátená hodnota sa použije na porovnanie na zoradenie položiek. V nasledujúcom programe triedime n-ticu reťazcov podľa dĺžky reťazcov. V tomto prípade môžeme ako kľúč použiť vstavanú funkciu len().

Vstup

 tuple_ = ('abhd', 'sbchcwsc', 'sjs', 'sxshs') sorted_ = tuple(sorted(tuple_, key=len)) print('Sorted Tuple :', sorted_) print(type(sorted_)) 

Výkon:

 Sorted Tuple : ('sjs', 'abhd', 'sxshs', 'sbchcwsc') 

Triediaci zoznam n-tic

Použitie zoradené ()

Pozrime sa, ako triediť zoznam v Pythone pomocou n-tice. Uvažujme o nasledujúcom scenári: chceme triediť zoznam n-tic. Musíme triediť n-tice podľa akéhokoľvek kľúča, ktorý nám bol daný. Dá sa to dosiahnuť pomocou funkcie sort() , ktorá triedi položky pomocou kľúča a ukladá kľúčový index na triedenie daných n-tic. Spustenie tohto prístupu v Pythone je nasledovné:

Vstup

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

Výkon:

 Sorted list of Tuples: [(27, 11, 32), (24, 12, 32), (34, 21, 56), (42, 34, 42)] 

Použitie bublinového triedenia

Bublinové triedenie je len triediaci algoritmus na triedenie zoznamu ľubovoľného počtu prvkov. Ak sú susedné položky v danom zozname v nesprávnom poradí, vymení ich. Potom tento proces opakuje, kým nie sú zoradené všetky prvky.

V tomto príklade použijeme algoritmus bublinového triedenia na triedenie zoznamu n-tic.

Vstup

 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) 

Výkon:

 [('Arshia', 26), ('Itika', 53), ('MJ', 45), ('Parker', 74), ('Peter', 82)]