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