Python Lista sort() med exempel
Vad är sort()-metoden i Python?
Sortera funktion in Python hjälper till att sortera en lista i stigande eller fallande ordning. Den kan användas för att sortera en numerisk lista, tupler och stränglista. Den skapar ingen separat lista utan modifierar eller sorterar originalet.
Syntax för sorteringsmetoden i Python
Sorteringsfunktionen har följande syntax enligt listan nedan: –
List.sort(key=…, reverse=…)
Sorteringsfunktionen har två valfria parametrar, nämligen enligt listan nedan: –
- Nyckel:- Detta används för att sortera en funktion baserat på ett sorteringskriterium.
- Reverse: – det tar värdet som antingen sant eller falskt. Om sant, sorterar denna anpassade funktion listan i fallande ordning.
Sortera en lista i stigande ordning med hjälp av metoden Sortera in Python
In Python, sorterar sorteringsfunktionen som standard valfri lista i stigande ordning. En lista i stigande ordning har det lägsta värdet på vänster sida, och det högsta värdet kommer på höger sida.
Exempelvis:
Python koda:
base_list=["Google","Reliance","Guru99","Content","Syntax"] base_list.sort() print("the base list after sorting is",base_list)
Produktion:
the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']
Kodförklaring:
- Listan ovan är en slumpmässigt definierad stränglista.
- Sorteringsfunktionen av Python hjälper till att sortera den slumpmässiga listan i stigande ordning, med den lägsta längden på ordet på vänster sida och den högsta längden på ordet på höger sida.
Sortera en lista i fallande ordning
Sorteringsfunktionen låter också en lista sorteras i fallande ordning. Det kan definieras som ordern där listan börjar med det högsta värdet och slutar med det lägsta värdet.
Den omvända parametern för sorteringsfunktionen tilldelas som sann för att få en lista sorterad i fallande ordning.
Låt oss titta på exemplet nedan: -
Python koda:
base_list=[100,600,400,8000,50] base_list.sort() print("the base list after sorting is",base_list) # Reverse Order base_list.sort(reverse=True) print("the base list after REVERSE sorting is",base_list)
Produktion:
the base list after sorting is [50, 100, 400, 600, 8000] the base list after REVERSE sorting is [8000, 600, 400, 100, 50]
Obs: Se till att tilldelningen av ordet "True" till den omvända parametern börjar med versaler "T" för att undvika körtidsfel.
Sortera en lista med tuplar med hjälp av sorteringsmetoden i Python
Python tupler är samlingar av oföränderliga element som följer en ordnad sekvens. Pythons sorteringsfunktion kan användas för att sortera en lista med tupler med hjälp av en anpassad funktion och lambda-uttryck.
En anpassad funktion kan skapas utan namn och representeras av ett lambdauttryck. Följande är syntaxen för Lambda-uttryck: –
Syntax:
Lambda arguments: expression
Ovanstående syntax motsvarar pythonkoden nedan:
def name (arguments): return expression
Här är ett exempel på en tuppel och anpassad funktion för att illustrera hur en sorteringsfunktion med nyckelparametrar hjälper till att sortera elementen i en tuppel:
Python koda:
base_list = [('Alto', 2020, 500),('MSFT', 2022, 300),('Guru99', 2019, 1070)] def get_key(base_list): return base_list[2] base_list.sort(key=get_key,reverse=True) print("The change in base list is as follows",base_list)
Produktion:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Kodförklaring:
- Den omvända parametern definieras som sann för att sortera tupeln i fallande ordning.
- Den anpassade funktionen tar det andra elementet i tupeln.
- Detta används som nyckeln till sorteringsfunktionen.
Låt oss titta på exemplet nedan som använder sig av lambdauttryck:
Python koda:
base_list = [('Alto', 2020, 500), ('MSFT', 2022, 300), ('Guru99', 2019, 1070)] base_list.sort(key=lambda base_list:base_list[2],reverse=True) print("The change in base list is as follows",base_list)
Produktion:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Förklaring:
- Lambda-uttrycket hjälper dig att sortera elementen i tupeln från högt till lågt med nyckeln som andra element i tupeln.
- Programmet kommer att kontrollera det högsta värdet av det andra elementet i tupeln.
Sortera listobjekt med Len som nyckelparameter
Len är en inbyggd funktion som bestämmer längden på föremålet. Den bestämda längden kan användas för indexeringen i sorteringsfunktionen. För att göra detta tilldelar vi Len till Python sorteringsfunktionens nyckelparameter.
Följande Python kod illustrerar hur man använder Len-funktionen med sorteringsfunktionen.
Python Koda:
base_list=["Alto", "Guru99", "Python", "Google", "Java"] base_list.sort(key=len) print("The sorted list based on length:",base_list)
Produktion:
The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']
Kodförklaring:
- Längden på elementet blir ett index för nyckelparametern för att ordna listan i stigande ordning.
- Len-funktionen uppskattar längden på varje element som finns i baslistan.
- Den håller det kortaste elementet på vänster sida och det största elementet på höger sida.
- Här har orden alt och java längden 4, som är ordnade först i listan, följt av Guru99, som har längden 6.
Det här exemplet illustrerar konceptet med den omvända parametern i sorteringsfunktionen som visas nedan: –
Python Koda:
base_list=["Alto", "Guru99", "Python", "Google", "Java"] base_list.sort(key=len,reverse=True) print("The sorted list based on length:",base_list)
Produktion:
The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']
Sortera listobjekt med användardefinierad funktion som nyckelparameter
Du kan också använda en användardefinierad funktion som nyckelparameter för att sortera en lista. Här är ett exempel: -
Python Koda:
base_list = [{'Example':'Python','year':1991},{'Example':'Alto','year':2014},{'Example':'Guru99', 'year':1995}, {'Example':'Google','year':1985},{'Example':'Apple','year':2007},{'Example':'Emails','year':2010},] def get_year(element): return element['year'] base_list.sort(key=get_year) print("The base list after sorting using explicit criteria",base_list)
Produktion:
The base list after sorting using explicit criteria [{'Example': 'Google', 'year': 1985}, {'Example': 'Python', 'year': 1991}, {'Example': 'Guru99', 'year': 1995}, {'Example': 'Apple', 'year': 2007}, {'Example': 'Emails', 'year': 2010}, {'Example': 'Alto', 'year': 2014}]
Kodförklaring:
- En användardefinierad funktion skapas för att returnera året
- Nyckelparametern tar en användardefinierad funktion som ett kriterium.
- Sorteringsfunktionen kommer att ordna listan i stigande ordning baserat på värdet på elementet "år".
Skillnaden mellan sorteringsmetoden och sorterad metod i Python
Innan skillnaderna sammanfattas, låt oss förstå syntaxen för den sorterade metoden.
Python Syntax:
sorted (list_name, reverse=…., key=..)
Kodförklaring:
- Den sorterade funktionen sorterar listan i antingen stigande eller fallande ordning.
- Funktionen accepterar tre parametrar, varav två parametrar är av valfri typ och en parameter är av önskad typ.
- Parametern list_name krävs när du använder metoden Sorterat.
- Den sorterade metoden kan ta vilken typ av itererbar lista som helst som indata.
- Nyckelparametrar och omvända parametrar är valfria parametrar under den sorterade metoden in Python.
Här är ett exempel på hur du använder sorterings- och sorteringsfunktionen i Python som visas nedan: –
Python koda:
#Use of the Sorted method Base_list=[11,10,9,8,7,6] print("the original list is",Base_list) New_list=sorted(Base_list) print("the New list using sorted method is",New_list) #Use of the Sort method Base_list=[11,10,9,8,7,6] print("the original list is",Base_list) New_list=Base_list.sort() print("the New list using sort method is",New_list)
Produktion:
the original list is [11, 10, 9, 8, 7, 6] the new list using the sorted method is [6, 7, 8, 9, 10, 11] the original list is [11, 10, 9, 8, 7, 6] the new list using the sort method is None
Kodförklaring:
- Den ursprungliga listan skickas som en obligatorisk parameter för den sorterade funktionen.
- Den sorterade metoden returnerar en ny lista utöver den ursprungliga listan.
- Eftersom inga ytterligare parametrar skickas till den sorterade metoden, sorteras den nya listan som standard i stigande ordning.
- Sorteringsfunktionen skapar ingen ny lista.
Följande är punkterna om viktiga likheter och skillnader: -
Sorterad funktion | Sorteringsfunktion |
---|---|
Sorterad funktion i Python är en inbyggd funktion som tar list_name som en obligatorisk parameter. | Sorteringsfunktionen tar inte den ursprungliga listan som en parameter. |
Sorterad metod returnerar en ny lista | Sorteringsfunktionen returnerar inte en ny lista |
Sorterad funktion ska användas för itererbara listor | Sorteringsfunktionen ska användas för listor som inte går att upprepa. |
Det ändrar inte den ursprungliga listan och tillåter oss att behålla originaldata. | Sorteringsfunktionen modifierar den ursprungliga funktionen och tar därför upp mindre minnesutrymme |
När ska man använda den sorterade metoden eller sorteringsmetoden?
Låt oss ta ett exempel som kräver att rasdata sorteras. Programmet använder bib-numret och tiden det tar i sekunder för att avsluta loppet.
Python koda:
from collections import namedtuple Base = namedtuple('Runner', 'bibnumber duration') blist = [] blist.append(Base('8567', 1500)) blist.append(Base('5234', 1420)) blist.append(Base('2344', 1600)) blist.append(Base('2342', 1490)) blist.append(Base('23444', 1620)) blist.append(Base('6674', 1906)) print("original list",blist) blist.sort(key=lambda x: getattr(x, 'duration')) top_five_result = blist[:5] print("Results using sort function",top_five_result) r_blist=sorted(blist,key=lambda x: getattr(x, 'duration')) top_five_result = r_blist[:5] print("Results using sorted function",top_five_result)
Produktion:
original list [Runner(bibnumber='8567', duration=1500), Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='23444', duration=1620), Runner(bibnumber='6674', duration=1906)] Results using sort function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)] Results using sorted function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]
Kodförklaring:
- Baslistan sorteras med både sorteringsfunktionen och sorterad funktion.
- Baslistan går förlorad när sorteringsfunktionen används.
- Sorteringsfunktionen ska inte tillämpas på den ursprungliga datamängden. Den ska användas när det finns en kopia av originaldatauppsättningen.
- Den sorterade funktionen behåller den ursprungliga listan. Det åsidosätter det inte.
- Detta ger bättre spårbarhet och effektiv datahantering.
Slutsats
- Sorteringsfunktionen hjälper till att sortera en numerisk och stränglista i python.
- Det kan också hjälpa till att sortera tuplar.
- Reverse och key är valfria parametrar för funktionen.
- Om det finns behov av att ha en separat lista och samtidigt ha den ursprungliga listan, så måste den sorterade funktionen användas annars måste sorteringsfunktionen användas för att uppnå optimerat minnesutnyttjande.