A tuples egy változó adattípusa, amely lehetővé teszi, hogy több objektumot tároljunk egy helyen. A tuple egy rendezett és változtathatatlan (egy sor elemeit nem tudjuk frissíteni) elemek gyűjteménye. Négy beépített Python adatstruktúra áll rendelkezésre az elemek tárolására, ezek közül az egyik egy sor, a többi pedig a Lista, a Szótár és a Set, mindegyik saját tulajdonságkészlettel és felhasználással rendelkezik. Kerek zárójelben vannak írva.
Tuple rendezése Pythonban
A sort() használata
A sort() metódust gyakran használják egy lista elemeinek növekvő sorrendbe rendezésére, ahol az első elemet alapértelmezés szerint rendezi. A sorokat úgy rendezhetjük, hogy először listává alakítjuk, majd ezt a függvényt alkalmazzuk. Ez a függvény a listát a helyére rendezi, és a None értéket adja vissza.
Bemenet
tuple_ = ('Itika', 'Arshia', 'Peter', 'Parker') list(tuple_).sort() print(tuple_) print(type(tuple_))
Kimenet:
('Itika', 'Arshia', 'Peter', 'Parker')
A sorted() használata
A Pythonban használja a sorted() beépített függvényt a Tuple rendezéséhez. A leírót argumentumként kell átadni a sorted() függvénynek. A sorelemek (alapértelmezés szerint) növekvő sorrendben vannak rendezve a függvény által visszaadott listában. Ezt a lista adattípust egy tuple segítségével konvertálhatjuk le ().
A sorted() függvény fordított paramétere a rendezési sorrendet is megadhatja. A növekvő rendezés az alapértelmezett rendezési sorrend. Az elemek csökkenő sorrendben vannak rendezve, ha a reverse=True be van állítva. Megadhatunk egy kulcsfüggvényt is, amelynek visszaadott értékeit az elemek rendezésére használjuk. Veszünk egy tuple_ tuple-t, amelynek egész értékei vannak, és növekvő sorrendbe rendezzük a következő programban.
Bemenet
tuple_ = (5, 2, 24, 3, 1, 6, 7) sorted_ = tuple(sorted(tuple_)) print('Sorted Tuple :', sorted_) print(type(sorted_))
Kimenet:
Sorted Tuple : (1, 2, 3, 5, 6, 7, 24)
Most csökkenő sorrendbe rendezzük a tuple-t ugyanazzal a funkcióval. Pass reverse=Igaz a sorted() függvényhez a sor csökkenő sorrendbe rendezéséhez.
Bemenet
tuple_ = (5, 2, 24, 3, 1, 6, 7) sorted_ = tuple(sorted(tuple_, reverse=True)) print('Sorted Tuple :', sorted_) print(type(sorted_))
Kimenet:
Sorted Tuple : (24, 7, 6, 5, 3, 2, 1)
Tuple rendezése kulcsfüggvény alapján
A kulcs olyan függvény, amely értéket vesz fel és egy értéket ad vissza. A sor minden elemére ez a kulcsfüggvény kerül alkalmazásra, és a visszaadott értéket használja az összehasonlításhoz az elemek rendezéséhez. A következő programban sorba rendezzük a karakterláncokat a karakterláncok hossza alapján. Ebben az esetben használhatjuk a len() beépített függvényt kulcsként.
Bemenet
tuple_ = ('abhd', 'sbchcwsc', 'sjs', 'sxshs') sorted_ = tuple(sorted(tuple_, key=len)) print('Sorted Tuple :', sorted_) print(type(sorted_))
Kimenet:
Sorted Tuple : ('sjs', 'abhd', 'sxshs', 'sbchcwsc')
Tuples rendezési listája
A sorted() használata
Nézzük meg, hogyan lehet egy listát rendezni Pythonban egy sor használatával. Tekintsük a következő forgatókönyvet: rendezni szeretnénk a sorok listáját. A sorokat minden nekünk adott kulcs szerint kell rendeznünk. Ez a sorted() függvénnyel valósítható meg, amely egy kulcs segítségével rendezi az elemeket, és tárolja a kulcsindexet az adott sorok rendezéséhez. Ennek a megközelítésnek a Python végrehajtása a következő:
Bemenet
# 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_))
Kimenet:
Sorted list of Tuples: [(27, 11, 32), (24, 12, 32), (34, 21, 56), (42, 34, 42)]
Buborékos rendezés használata
A buborékos rendezés csak egy rendezési algoritmus tetszőleges számú elemből álló lista rendezésére. Ha egy adott listában a szomszédos elemek helytelen sorrendben vannak, akkor felcseréli őket. Ezután ezt a folyamatot addig ismétli, amíg az összes elemet nem rendezi.
Ebben a példában a buborékok rendezési algoritmusát használjuk a sorok listájának rendezésére.
Bemenet
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)
Kimenet:
[('Arshia', 26), ('Itika', 53), ('MJ', 45), ('Parker', 74), ('Peter', 82)]