Razvrščanje pomeni razvrščanje nabora vrednosti v naraščajočem ali padajočem načinu. V Pythonu obstajajo različne metode za razvrščanje vrednosti. Nabor ali skupino vrednosti lahko shranimo z različnimi podatkovnimi strukturami, kot so seznami, tuple, slovarji, kar je odvisno od podatkov, ki jih shranjujemo. Torej, v tem članku bomo razpravljali o nekaterih metodah in merilih za razvrščanje podatkov v Pythonu.
Metoda Sorted().
To je vnaprej določena metoda v pythonu, ki razvrsti vse vrste predmetov.
Sintaksa:
sorted(iterable, key, reverse)>
Pri tej metodi posredujemo 3 parametre, od katerih sta 2 (ključ in obratno) izbirna, prvi parameter, tj. iterable, pa je lahko kateri koli iterable predmet. Ta metoda vrne razvrščen seznam, vendar ne spremeni izvorne strukture podatkov.
Primer 1:
Python3
pandino središče
# 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']>
Primer 2:
Uporaba vnaprej določene funkcije kot ključnega parametra. Torej drugi parameter, tj. ključ se uporablja za razvrščanje podane strukture podatkov po neki vnaprej določeni funkciji, kot je npr samo() ali kakšno uporabniško definirano funkcijo. Razvrsti vrednosti v podatkovni strukturi glede na funkcijo, posredovano parametru ključa.
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>))> |
>
>
igralec ranbir kapoor starostIzhod
Sorting without key parameter: ['apple', 'ball', 'cat', 'dog'] Sorting with len as key parameter: ['cat', 'dog', 'ball', 'apple']>
Primer 3:
Uporaba uporabniško določene funkcije za ključni parameter.
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))> |
>
>
Izhod
Razvrščanje brez ključnega parametra: [('Amar', 89), ('Lasya', 32), ('Ramesh', 56), ('Reka', 54)]
Razvrščanje po imenu kot ključnem parametru: [('Amar', 89), ('Lasya', 32), ('Ramesh', 56), ('Reka', 54)]
Razvrščanje z by_marks kot ključnim parametrom: [('Lasya', 32), ('Reka', 54), ('Ramesh', 56), ('Amar', 89)]
Primer 4:
Torej 3. parameter je obraten ki se uporablja za razvrščanje iterable v padajočem ali padajočem vrstnem redu.
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>))> |
>
>Izhod
Sorting without key parameter: ['for', 'geeks', 'geeks'] Sorting with len as key parameter: ['geeks', 'geeks', 'for']>
Primer 5:
Z uporabo vseh treh parametrov
Python3
kako odpreti datoteko v Javi
# 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>))> |
>
>
Izhod
Razvrščanje brez ključa in obratno: [('Amar', 89), ('Lasya', 32), ('Ramesh', 56), ('Reka', 54)]
Razvrščanje s po_ime kot ključnim parametrom in obratnim parametrom kot False: [('Amar', 89), ('Lasya', 32), ('Ramesh', 56), ('Reka', 54)]
Razvrščanje s po_ime kot ključnim parametrom in obratnim parametrom kot True: [('Reka', 54), ('Ramesh', 56), ('Lasya', 32), ('Amar', 89)]
Razvrščanje z by_marks kot ključnim parametrom in obratnim parametrom kot False: [('Lasya', 32), ('Reka', 54), ('Ramesh', 56), ('Amar', 89)]
Razvrščanje z by_marks kot ključnim parametrom in obratnim parametrom kot True: [('Amar', 89), ('Ramesh', 56), ('Reka', 54), ('Lasya', 32)]
Metoda Sort().
Ta metoda privzeto razvrsti seznam v naraščajočem vrstnem redu, za razvrščanje v padajočem vrstnem redu pa lahko uporabimo obratni parameter. Ta metoda spremeni prvotni seznam in ne vrne ničesar.
Primer 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)> |
>
>Izhod
Original list: ['geeks', 'for', 'geeks'] Sorted list: ['for', 'geeks', 'geeks']>
Primer 2:
Uporaba vnaprej določene funkcije kot ključnega parametra
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)> |
>
markdown slike
>Izhod
Original List: ['apple', 'ball', 'cat', 'dog'] Sorting with len as key parameter: ['cat', 'dog', 'ball', 'apple']>
Primer 3:
Uporaba uporabniško definirane funkcije kot ključnega parametra
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)> |
>
>
Izhod
prvotni seznam: [('Ramesh', 56), ('Reka', 54), ('Lasya', 32), ('Amar', 89)]
Razvrščanje po imenu kot ključnem parametru: [('Amar', 89), ('Lasya', 32), ('Ramesh', 56), ('Reka', 54)]
prvotni seznam: [('Ramesh', 56), ('Reka', 54), ('Lasya', 32), ('Amar', 89)]
Razvrščanje z by_marks kot ključnim parametrom: [('Lasya', 32), ('Reka', 54), ('Ramesh', 56), ('Amar', 89)]
Primer 4:
'kaj je 10 od 100'
Uporaba obratnega parametra
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)> |
>
>Izhod
original list: ['geeks', 'for', 'geeks'] sorting with reverse parameter ['geeks', 'geeks', 'for']>