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:

Sortera listobjekt med Len

  • 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.

Sammanfatta detta inlรคgg med: