Sortering innebär att ordna uppsättningen av värden på antingen ett ökande eller minskande sätt. Det finns olika metoder för att sortera värden i Python. Vi kan lagra en uppsättning eller grupp av värden med hjälp av olika datastrukturer som listor, tupler, ordböcker som beror på vilken data vi lagrar. Så i den här artikeln kommer vi att diskutera några metoder och kriterier för att sortera data i Python.
Sorterad() metod
Detta är en fördefinierad metod i python som sorterar alla slags objekt.
Syntax:
sorted(iterable, key, reverse)>
I denna metod skickar vi 3 parametrar, av vilka 2 (nyckel och omvänd) är valfria och den första parametern, dvs iterable kan vara vilket iterable objekt som helst. Denna metod returnerar en sorterad lista men ändrar inte den ursprungliga datastrukturen.
Exempel 1:
Python3
# List> list_of_items> => [> 'g'> ,> 'e'> ,> 'e'> ,> 'k'> ,> 's'> ]> print> (> sorted> (list_of_items))> # Tuple> tuple_of_items> => (> 'g'> ,> 'e'> ,> 'e'> ,> 'k'> ,> 's'> )> print> (> sorted> (tuple_of_items))> # String-sorted based on ASCII> # translations> string> => 'geeks'> print> (> sorted> (string))> # Dictionary> dictionary> => {> 'g'> :> 1> ,> 'e'> :> 2> ,> 'k'> :> 3> ,> 's'> :> 4> }> print> (> sorted> (dictionary))> # Set> set_of_values> => {> 'g'> ,> 'e'> ,> 'e'> ,> 'k'> ,> 's'> }> print> (> sorted> (set_of_values))> # Frozen Set> frozen_set> => frozenset> ((> 'g'> ,> 'e'> ,> 'e'> ,> 'k'> ,> 's'> ))> print> (> sorted> (frozen_set))> |
>
>
['e', 'e', 'g', 'k', 's'] ['e', 'e', 'g', 'k', 's'] ['e', 'e', 'g', 'k', 's'] ['e', 'g', 'k', 's'] ['e', 'g', 'k', 's'] ['e', 'g', 'k', 's']>
Exempel 2:
Använder fördefinierad funktion som nyckelparameter. Så den andra parametern dvs. nyckel används för att sortera den givna datastrukturen efter någon fördefinierad funktion som t.ex endast() eller någon användardefinierad funktion. Den sorterar värdena i datastrukturen baserat på funktionen som skickas till nyckelparametern.
Python3
# using key parameter with pre-defined> # function i.e. len()> list_of_items> => [> 'apple'> ,> 'ball'> ,> 'cat'> ,> 'dog'> ]> print> (> 'Sorting without key parameter:'> ,> sorted> (list_of_items))> print> (> 'Sorting with len as key parameter:'> ,> sorted> (list_of_items, key> => len> ))> |
>
>Produktion
Sorting without key parameter: ['apple', 'ball', 'cat', 'dog'] Sorting with len as key parameter: ['cat', 'dog', 'ball', 'apple']>
Exempel 3:
Använder den användardefinierade funktionen för nyckelparametern.
Python3
# using key parameter with user-defined> # function i.e. by_name> # using key parameter with user-defined> # function i.e. by_marks> # here is a list_of_tuples where the first> # item in tuple is the student name and the> # second item is his/her marks> list_of_items> => [(> 'Ramesh'> ,> 56> ),(> 'Reka'> ,> 54> ),(> 'Lasya'> ,> 32> ),(> 'Amar'> ,> 89> )]> # defining a user-defined function which returns> # the first item(name)> def> by_name(ele):> > return> ele[> 0> ]> # defining a user-defined function which returns> # the second item(marks)> def> by_marks(ele):> > return> ele[> 1> ]> print> (> 'Sorting without key parameter:'> ,> sorted> (list_of_items))> print> (> 'Sorting with by_name as key parameter:'> ,> > sorted> (list_of_items, key> => by_name))> print> (> 'Sorting with by_marks as key parameter:'> ,> > sorted> (list_of_items, key> => by_marks))> |
>
>
Produktion
Sortering utan nyckelparameter: [('Amar', 89), ('Lasya', 32), ('Ramesh', 56), ('Reka', 54)]
Sortering med by_name som nyckelparameter: [('Amar', 89), ('Lasya', 32), ('Ramesh', 56), ('Reka', 54)]
Sortering med by_marks som nyckelparameter: [('Lasya', 32), ('Reka', 54), ('Ramesh', 56), ('Amar', 89)]
Exempel 4:
Så den Den tredje parametern är omvänd som används för att sortera det iterbara i fallande eller fallande ordning.
Python3
# using key parameter reverse> list_of_items> => [> 'geeks'> ,> 'for'> ,> 'geeks'> ]> print> (> 'Sorting without key parameter:'> ,> > sorted> (list_of_items))> print> (> 'Sorting with len as key parameter:'> ,> > sorted> (list_of_items, reverse> => True> ))> |
>
java listbox
>Produktion
Sorting without key parameter: ['for', 'geeks', 'geeks'] Sorting with len as key parameter: ['geeks', 'geeks', 'for']>
Exempel 5:
Använder alla tre parametrarna
Python3
# using by_name and by_marks as key parameter> # and making reverse parameter true> # here is a list_of_tuples where the first> # item in tuple is the student name and the> # second item is his/her marks> list_of_items> => [(> 'Ramesh'> ,> 56> ), (> 'Reka'> ,> 54> ),> > (> 'Lasya'> ,> 32> ), (> 'Amar'> ,> 89> )]> # defining a user-defined function which> # returns the first item(name)> def> by_name(ele):> > return> ele[> 0> ]> # defining a user-defined function which> # returns the second item(marks)> def> by_marks(ele):> > return> ele[> 1> ]> print> (> 'Sorting without key and reverse:'> ,> sorted> (list_of_items))> print> (> 'Sorting with by_name as key parameter and reverse parameter as False:'> ,> > sorted> (list_of_items, key> => by_name, reverse> => False> ))> print> (> 'Sorting with by_name as key parameter and reverse parameter as True:'> ,> > sorted> (list_of_items, key> => by_name, reverse> => True> ))> print> (> 'Sorting with by_marks as key parameter and reverse parameter as False:'> ,> > sorted> (list_of_items, key> => by_marks, reverse> => False> ))> print> (> 'Sorting with by_marks as key parameter and reverse parameter as True:'> ,> > sorted> (list_of_items, key> => by_marks, reverse> => True> ))> |
>
>
Produktion
Sortering utan nyckel och omvänd: [('Amar', 89), ('Lasya', 32), ('Ramesh', 56), ('Reka', 54)]
om annat i bash-skalSortering med by_name som nyckelparameter och omvänd parameter som False: [('Amar', 89), ('Lasya', 32), ('Ramesh', 56), ('Reka', 54)]
Sortering med by_name som nyckelparameter och omvänd parameter som True: [('Reka', 54), ('Ramesh', 56), ('Lasya', 32), ('Amar', 89)]
Sortering med by_marks som nyckelparameter och omvänd parameter som False: [('Lasya', 32), ('Reka', 54), ('Ramesh', 56), ('Amar', 89)]
Sortering med by_marks som nyckelparameter och omvänd parameter som True: [('Amar', 89), ('Ramesh', 56), ('Reka', 54), ('Lasya', 32)]
Sort() metod
Den här metoden sorterar listan i stigande ordning som standard, och vi kan använda den omvända parametern för att sortera i fallande ordning. Den här metoden ändrar den ursprungliga listan och returnerar ingenting.
Exempel 1:
Python3
# creating a list of items> list_of_items> => [> 'geeks'> ,> 'for'> ,> 'geeks'> ]> print> (> 'Original list:'> , list_of_items)> # using the sort method to sort> # the items> list_of_items.sort()> # displaying the list> print> (> 'Sorted list:'> , list_of_items)> |
>
>Produktion
Original list: ['geeks', 'for', 'geeks'] Sorted list: ['for', 'geeks', 'geeks']>
Exempel 2:
Använder en fördefinierad funktion som nyckelparameter
Python3
# using key parameter with pre-defined> # function i.e. len()> list_of_items> => [> 'apple'> ,> 'ball'> ,> 'cat'> ,> 'dog'> ]> print> (> 'Original List:'> , list_of_items)> # using the len() as key parameter and> # sorting the list> list_of_items.sort(key> => len> )> print> (> 'Sorting with len as key parameter:'> , list_of_items)> |
>
>Produktion
Original List: ['apple', 'ball', 'cat', 'dog'] Sorting with len as key parameter: ['cat', 'dog', 'ball', 'apple']>
Exempel 3:
Använder en användardefinierad funktion som nyckelparameter
Python3
# using key parameter with user-defined> # function i.e. by_name> # using key parameter with user-defined> # function i.e. by_marks> # defining a user-defined function which> # returns the first item(name)> def> by_name(ele):> > return> ele[> 0> ]> # defining a user-defined function which> # returns the second item(marks)> def> by_marks(ele):> > return> ele[> 1> ]> # here is a list_of_tuples where the first> # item in tuple is the student name and the> # second item is his/her marks> list_of_items> => [(> 'Ramesh'> ,> 56> ), (> 'Reka'> ,> 54> ),> > (> 'Lasya'> ,> 32> ), (> 'Amar'> ,> 89> )]> print> (> 'original list:'> , list_of_items)> # sorting by key value as by_name function> list_of_items.sort(key> => by_name)> print> (> 'Sorting with by_name as key parameter:'> , list_of_items)> # here is a list_of_tuples where the first> # item in tuple is the student name and the> # second item is his/her marks> list_of_items> => [(> 'Ramesh'> ,> 56> ), (> 'Reka'> ,> 54> ),> > (> 'Lasya'> ,> 32> ), (> 'Amar'> ,> 89> )]> print> (> 'original list:'> , list_of_items)> # sorting by key value as by_marks function> list_of_items.sort(key> => by_marks)> print> (> 'Sorting with by_marks as key parameter:'> , list_of_items)> |
>
>
Produktion
ursprunglig lista: [('Ramesh', 56), ('Reka', 54), ('Lasya', 32), ('Amar', 89)]
Sortering med by_name som nyckelparameter: [('Amar', 89), ('Lasya', 32), ('Ramesh', 56), ('Reka', 54)]
ursprunglig lista: [('Ramesh', 56), ('Reka', 54), ('Lasya', 32), ('Amar', 89)]
Sortering med by_marks som nyckelparameter: [('Lasya', 32), ('Reka', 54), ('Ramesh', 56), ('Amar', 89)]
Exempel 4:
Använder omvänd parameter
Python3
# using key parameter reverse> list_of_items> => [> 'geeks'> ,> 'for'> ,> 'geeks'> ]> print> (> 'original list:'> , list_of_items)> list_of_items.sort(reverse> => True> )> print> (> 'sorting with reverse parameter'> , list_of_items)> |
>
>Produktion
original list: ['geeks', 'for', 'geeks'] sorting with reverse parameter ['geeks', 'geeks', 'for']>