logo

Jak třídit Tuple v Pythonu

N-tice jsou typem datového typu proměnné, který nám umožňuje ukládat více objektů na jedno místo. N-tice je uspořádaná a neměnná (nemůžeme aktualizovat prvky v n-tice) kolekce položek. Existují 4 vestavěné datové struktury Pythonu pro ukládání prvků, jedna z nich je n-tice a další jsou List, Dictionary a Set, z nichž každá má svou vlastní sadu vlastností a použití. Jsou psány v kulatých závorkách.

Třídění n-tice v Pythonu

Použití sort()

Metoda sort() se často používá k řazení prvků seznamu ve vzestupném pořadí, přičemž první prvek je standardně seřazen. N-tici můžeme seřadit tak, že ji nejprve převedeme na seznam a poté použijeme tuto funkci. Tato funkce seřadí seznam na místě a vrátí Žádné.

číst ze souboru csv v jazyce Java

Vstup

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

Výstup:

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

Pomocí sorted()

V Pythonu použijte k řazení n-tice vestavěnou funkci sort() . N-tice by měla být předána jako argument funkci sort() . Položky n-tice jsou seřazeny (ve výchozím nastavení) ve vzestupném pořadí v seznamu vráceném funkcí. Můžeme použít n-tici k převodu tohoto datového typu seznamu na n-tici ().

Pořadí řazení může určit také parametr reverse k funkci sort() . Vzestupně je výchozí pořadí řazení. Položky jsou seřazeny v sestupném pořadí, když je nastaveno reverse=True. Můžeme také zadat klíčovou funkci, jejíž vrácené hodnoty se používají k řazení položek. Vezmeme n-tici, tuple_, která má celočíselné hodnoty, a seřadíme ji vzestupně v následujícím programu.

Vstup

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

Výstup:

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

Nyní třídíme n-tici v sestupném pořadí pomocí stejné funkce. Předat reverzní=Pravda pro funkci sorted() pro seřazení n-tice v sestupném pořadí.

Vstup

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

Výstup:

řetězec nahradit vše java
 Sorted Tuple : (24, 7, 6, 5, 3, 2, 1) 

Třídění n-tice na základě funkce klíče

Klíč je funkce, která přebírá hodnotu a vrací hodnotu. Pro každou z položek v n-tici se použije tato klíčová funkce a vrácená hodnota se použije pro porovnání k seřazení položek. V následujícím programu třídíme n-tice řetězců podle délky řetězců. V tomto případě můžeme jako klíč použít vestavěnou funkci len().

Vstup

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

Výstup:

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

Třídicí seznam n-tic

Pomocí sorted()

Podívejme se, jak třídit seznam v Pythonu pomocí n-tice. Zvažte následující scénář: chceme seřadit seznam n-tic. Musíme třídit n-tice podle jakéhokoli klíče, který nám byl přidělen. Toho lze dosáhnout pomocí funkce sort() , která třídí položky pomocí klíče a ukládá index klíče pro řazení daných n-tic. Provedení tohoto přístupu v Pythonu je následující:

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ýstup:

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

Použití bublinového třídění

Bubble sort je pouze třídicí algoritmus pro řazení seznamu libovolného počtu prvků. Pokud jsou sousední položky v daném seznamu v nesprávném pořadí, zamění je. Poté tento proces opakuje, dokud nejsou všechny prvky seřazeny.

V tomto příkladu použijeme algoritmus pro třídění bublin k seřazení seznamu 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ýstup:

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