logo

Kaip rūšiuoti tuple Python

Kortelės yra kintamojo duomenų tipas, leidžiantis saugoti kelis objektus vienoje vietoje. Eilė yra sutvarkyta ir nekintanti (negalime atnaujinti elementų rinkinyje) elementų rinkinys. Elementams saugoti yra 4 integruotos Python duomenų struktūros, viena iš jų yra rinkinys, o kitos yra sąrašas, žodynas ir rinkinys, kurių kiekviena turi savo savybių rinkinį ir naudojimą. Jie rašomi apvaliuose skliaustuose.

Kortelės rūšiavimas Python

Naudojant sort()

Metodas sort() dažnai naudojamas sąrašo elementams rūšiuoti didėjančia tvarka, o pirmasis elementas rūšiuojamas pagal numatytuosius nustatymus. Mes galime rūšiuoti seką pirmiausia konvertuodami ją į sąrašą ir tada pritaikydami šią funkciją. Ši funkcija surūšiuoja sąrašą į vietą ir grąžina Nėra.

roboto komponentai

Įvestis

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

Išvestis:

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

Naudojant surūšiuotą()

Python sistemoje naudokite integruotą funkciją sorted(), kad rūšiuotumėte kortelę. Eilė turėtų būti perduota kaip argumentas funkcijai sorted(). Kortelės elementai yra rūšiuojami (pagal numatytuosius nustatymus) didėjančia tvarka funkcijos grąžintame sąraše. Norėdami konvertuoti šį sąrašo duomenų tipą į eilutę ().

Funkcijos sorted() atvirkštinis parametras taip pat gali nurodyti rūšiavimo tvarką. Didėjantis yra numatytoji rūšiavimo tvarka. Elementai rūšiuojami mažėjimo tvarka, kai nustatyta atvirkštinė = True. Taip pat galime nurodyti rakto funkciją, kurios grąžintos reikšmės naudojamos elementams rūšiuoti. Mes paimame eilutę, eilutę_, turinčią sveikųjų skaičių reikšmes, ir surūšiuojame ją didėjančia tvarka šioje programoje.

Įvestis

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

Išvestis:

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

Dabar mes rūšiuojame seką mažėjančia tvarka naudodami tą pačią funkciją. Pass reverse=Tiesa surūšiuoti() funkcijai, kad eilė būtų rūšiuojama mažėjančia tvarka.

Įvestis

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

Išvestis:

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

Kortelės rūšiavimas pagal rakto funkciją

Raktas yra funkcija, kuri paima reikšmę ir grąžina reikšmę. Kiekvienam eilutės elementui taikoma ši rakto funkcija, o grąžinta reikšmė naudojama palyginimui, norint rūšiuoti elementus. Šioje programoje rūšiuojame eilutes pagal eilučių ilgį. Šiuo atveju kaip raktą galime naudoti įmontuotą funkciją len().

Įvestis

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

Išvestis:

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

Tupelių rūšiavimo sąrašas

Naudojant surūšiuotą()

Pažiūrėkime, kaip rūšiuoti sąrašą Python naudojant seką. Apsvarstykite tokį scenarijų: norime rūšiuoti eilučių sąrašą. Turime rūšiuoti eilutes pagal bet kurį mums duotą raktą. Tai galima padaryti naudojant funkciją sorted(), kuri rūšiuoja elementus naudodama raktą ir išsaugo rakto indeksą, skirtą duotų eilučių rūšiavimui. Šio metodo Python vykdymas yra toks:

Įvestis

gauti masyvo ilgį c
 # 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_)) 

Išvestis:

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

Burbulų rūšiavimo naudojimas

Burbulų rūšiavimas yra tik rūšiavimo algoritmas, skirtas rūšiuoti bet kokio skaičiaus elementų sąrašą. Jei gretimas tam tikrame sąraše esantis elementas yra neteisinga tvarka, jis juos pakeičia. Tada jis kartoja šį procesą, kol visi elementai bus surūšiuoti.

Šiame pavyzdyje eilių sąrašui surūšiuoti naudosime burbulų rūšiavimo algoritmą.

Įvestis

 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) 

Išvestis:

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