logo

sort() i Python

Sorteringsfunktionen kan användas för att sortera listan i både stigande och fallande ordning. Den kan användas för att sortera listor med heltal, flyttal, strängar och annat i Pytonorm . Dess tidskomplexitet är O(NlogN).

Python sort() Syntax

Syntaxen för sort()-funktionen i Python är följande.



Syntax: list_name.sort(key=…, reverse=…)

Parametrar:

Som standard kräver Python sort() inga extra parametrar och sorterar listan i stigande ordning. Den har dock två valfria parametrar:



  • nyckel: funktion som fungerar som en nyckel för sorteringsjämförelsen
  • omvänd: Om sant är listan sorterad i fallande ordning.

Returvärde: Sort() returnerar inget men ändrar den ursprungliga listan enligt den passerade parametern.

Vad är Python sort()-funktionen?

I Python, densort()>funktion är en metod som hör till listan. Den används för att sortera i python eller elementen i en lista i stigande ordning som standard. Desort()>metoden modifierar den ursprungliga listan på plats, vilket innebär att den ordnar om elementen direkt i det befintliga listobjektet, istället för att skapa en ny sorterad lista.

Sort() i Python-exempel

Ett grundläggande exempel på Python sort()-metoden.



rullhjulet fungerar inte

Exempel: I det här exemplet definierar koden nedan en lista med namnunsorted_list>med numeriska element. Desort()>metoden tillämpas sedan på listan, som ordnar om dess element i stigande ordning. Den sorterade listan skrivs sedan ut och visar resultatet av sorteringsoperationen.

Python3




unsorted_list>=> [>2>,>4>,>5>,>32>,>6>,>255>,>5>,>42>]> unsorted_list.sort()> print>(>'Now it is sorted:'>, unsorted_list)>

>

>

Produktion:

Now it is sorted: [2, 4, 5, 5, 6, 32, 42, 255]>

Olika sätt att sortera() i Python

I Python,sort()>är en inbyggd metod som används för att sortera element i en lista i stigande ordning. Den ändrar den ursprungliga listan på plats, vilket betyder att den ordnar om elementen direkt i listan utan att skapa en ny lista. Desort()>metod returnerar inget värde; den sorterar helt enkelt listan och uppdaterar den.

  1. Sortering Lista i stigande ordning
  2. Sortering Lista i fallande ordning
  3. Sortera med anpassad funktion Använder Key
  4. Sortering Lista över strängar efter längd
  5. Sorteringslista över Tuples av ett specifikt element
  6. Sorteringslista över Ordböcker med en specifik nyckel

Sort() i Python med hjälp av sorteringslistan i stigande ordning

Metoden `sort()` i Python används för att sortera en lista med element i stigande ordning. Den modifierar den ursprungliga listan på plats och omarrangerar dess element till att vara i ökande numerisk eller lexikografisk ordning. Metoden är tillämpbar på listor som innehåller numeriska värden, strängar eller en kombination av båda. Som standard sorterar sort() i Python en lista i stigande ordning om vi inte förser den med några parametrar.

Exempel : I det här exemplet visar koden nedan sorteringsoperationer på olika typer av listor. Först sorterar den en lista med heltal (`tal`) i stigande ordning med hjälp av `sort()`-metoden. Därefter sorterar den en lista med flyttal (`decimaltal`) i stigande ordning.

Python3




# List of Integers> numbers>=> [>1>,>3>,>4>,>2>]> # Sorting list of Integers> numbers.sort()> print>(numbers)> # List of Floating point numbers> decimalnumber>=> [>2.01>,>2.00>,>3.67>,>3.28>,>1.68>]> # Sorting list of Floating point numbers> decimalnumber.sort()> print>(decimalnumber)> # List of strings> words>=> [>'Geeks'>,>'For'>,>'Geeks'>]> # Sorting list of strings> words.sort()> print>(words)>

>

>

Produktion:

[1, 2, 3, 4] [1.68, 2.0, 2.01, 3.28, 3.67] ['For', 'Geeks', 'Geeks']>

Sort() i Python med hjälp av Sorteringslista i fallande ordning

För att sortera en lista i fallande ordning, ställ in parametern omvänd till True av sort()-funktionen i Python.

my_list.sort(reverse=True)>

Exempel: I n denna exempelkod definierar tre listor av olika typer (heltal, flyttal och strängar), sorterar dem i fallande ordning med hjälp av `sort`-metoden med parametern `reverse=True` och skriver sedan ut de sorterade listorna.

Python3




# List of Integers> numbers>=> [>1>,>3>,>4>,>2>]> # Sorting list of Integers> numbers.sort(reverse>=>True>)> print>(numbers)> # List of Floating point numbers> decimalnumber>=> [>2.01>,>2.00>,>3.67>,>3.28>,>1.68>]> # Sorting list of Floating point numbers> decimalnumber.sort(reverse>=>True>)> print>(decimalnumber)> # List of strings> words>=> [>'Geeks'>,>'For'>,>'Geeks'>]> # Sorting list of strings> words.sort(reverse>=>True>)> print>(words)>

>

>

Produktion:

[4, 3, 2, 1] [3.67, 3.28, 2.01, 2.0, 1.68] ['Geeks', 'Geeks', 'For']>

Sortera med anpassad funktion med tangenten

I denna metod beskrivs en sorteringsoperation med en anpassad funktion med nyckelparametern. Detta tillåter sortering baserat på ett specifikt kriterium som definieras av den anpassade funktionen snarare än standardordningen. Den anpassade funktionen tillämpas på varje element, och listan sorteras därefter.

Exempel : I det här exemplet definierar koden en funktion `sortSecond` som returnerar det andra elementet i en tupel. Den skapar sedan en lista med tupler, `list1`, och sorterar den i stigande ordning baserat på det andra elementet med hjälp av `sortSecond`-funktionen.

Python3




def> sortSecond(val):> >return> val[>1>]> # list1 to demonstrate the use of sorting> # using second key> list1>=> [(>1>,>2>),(>3>,>3>),(>1>,>1>)]> # sorts the array in ascending according to> # second element> list1.sort(key>=>sortSecond)> print>(list1)> # sorts the array in descending according to> # second element> list1.sort(key>=>sortSecond,reverse>=>True>)> print>(list1)>

>

>

Produktion:

[(1, 1), (1, 2), (3, 3)] [(3, 3), (1, 2), (1, 1)]>

Sortering av strängar efter längd i Sort() i Python

I den här metoden sorterar vi en lista med strängar i stigande ordning efter deras längder med hjälp av funktionen `sort()` med `key=len`. Detta innebär att strängarna är ordnade från den kortaste till den längsta längden i den resulterande sorterade listan.

Exempel: I det här exemplet definierar koden nedan en lista med strängar,words>, och sorterar den sedan baserat på längden på varje sträng med hjälp avlen()>fungerar som sorteringsnyckel. Slutligen skriver den ut den sorterade listan.

Python3




# Original list of strings> words>=> [>'apple'>,>'banana'>,>'kiwi'>,>'orange'>,>'grape'>]> # Sorting by length using the len() function as the key> words.sort(key>=>len>)> # Displaying the sorted list> print>(>'Sorted by Length:'>, words)>

>

>

Utgång:

Sorted by Length: ['kiwi', 'apple', 'grape', 'banana', 'orange']>

Sortering av tuplar efter ett specifikt element

För att sortera en lista med tupler efter ett specifikt element, använd funktionen `sort()` med parametern `key`. Ange en lambda-funktion som nyckel, inriktad på det önskade elementets index. Tuplarna kommer att sorteras baserat på värdena för det specifika elementet.

Exempel: I den här metoden definierar koden en lista med tupler som heter 'människor', där varje tupel representerar en persons namn och ålder. Den sorterar sedan listan baserat på det andra elementet i varje tupel (ålder) med hjälp avsort>metod och en lambda fungerar som sorteringsnyckel.

Python3




# Original list of tuples> people>=> [(>'Alice'>,>25>), (>'Bob'>,>30>), (>'Charlie'>,>22>), (>'David'>,>28>)]> # Sorting by the second element of each tuple (age)> people.sort(key>=>lambda> x: x[>1>])> # Displaying the sorted list> print>(>'Sorted by Age:'>, people)>

>

>

Utgång:

Sorted by Age: [('Charlie', 22), ('Alice', 25), ('David', 28), ('Bob', 30)]>

Sortera lista över ordböcker efter en specifik nyckel

Denna metod innebär att du använder funktionen `sort()` på en lista över ordböcker i Python. Genom att ange en lambdafunktion som nyckelparameter kan du sortera listan baserat på en specifik nyckel inom varje ordbok. Detta gör att listan med ordböcker kan ordnas i stigande ordning enligt de värden som är associerade med den valda nyckeln.

Exempel : I det här exemplet definierar koden en lista över ordböcker som kallasstudents>, där varje ordbok representerar en elev med namn- och åldersnycklar. Den sorterar sedan listan över ordböcker baserat på åldersnyckeln i varje ordbok med hjälp avsort>metod och en lambda fungerar som nyckel.

Python3




# Original list of dictionaries> students>=> [> >{>'name'>:>'Alice'>,>'age'>:>25>},> >{>'name'>:>'Bob'>,>'age'>:>30>},> >{>'name'>:>'Charlie'>,>'age'>:>22>},> >{>'name'>:>'David'>,>'age'>:>28>},> ]> # Sorting by the 'age' key in each dictionary> students.sort(key>=>lambda> x: x[>'age'>])> # Displaying the sorted list> print>(>'Sorted by Age:'>, students)>

>

>

Utgång:

Sorted by Age: [  {'name': 'Charlie', 'age': 22},  {'name': 'Alice', 'age': 25},  {'name': 'David', 'age': 28},  {'name': 'Bob', 'age': 30} ]>

Skillnaden mellan sortered() och sort() funktion i Python

Låt oss se skillnaden mellan sorterad() och sort()-funktionen i Python:

Python sorterad()

Python sort()

Funktionen sorted() returnerar en sorterad lista över det specifika itererbara objektet. Metoden sort() sorterar listan.
Vi kan ange stigande eller fallande ordning medan vi använder funktionen sortered(). Den sorterar listan i stigande ordning som standard.
Syntax : sorterad(iterbar, nyckel=nyckel, omvänd=omvänd) Syntax : list.sort(reverse=True|False, key=myFunc)
Dess returtyp är en sorterad lista. Vi kan också använda den för att sortera en lista i fallande ordning.

Kan användas med vilken som helst iterabel, även om jämförelse mellan element inte är definierad

Kräver att element är jämförbara med hjälp av<>och>>operatörer

Behåller den relativa ordningen av lika element, vilket gör den stabil.

Kan inte vara stabil; ordningen på lika element kan ändras.

O(n log n) tidskomplexitet för de flesta fall.

O(n log n) tidskomplexitet för de flesta fall.

Den kan bara sortera en lista som bara innehåller en typ av värde. Det sorterar listan på plats.

Stöder akey>parameter för anpassade sorteringskriterier.

Stöder även enkey>parameter för anpassade sorteringskriterier.

Kräver extra minne för den nya sorterade listan.

Utför sorteringen på plats och sparar minne.

För att veta mer, se Python-skillnaden mellan sortered() och sort()-funktionen .