Sorteren betekent het rangschikken van de reeks waarden in stijgende of dalende wijze. Er zijn verschillende methoden om waarden in Python te sorteren. We kunnen een set of groep waarden opslaan met behulp van verschillende datastructuren zoals lijsten, tupels en woordenboeken, afhankelijk van de gegevens die we opslaan. In dit artikel zullen we daarom enkele methoden en criteria bespreken om de gegevens in Python te sorteren.
Gesorteerde() methode
Dit is een vooraf gedefinieerde methode in Python die elk soort object sorteert.
Syntaxis:
sorted(iterable, key, reverse)>
Bij deze methode geven we 3 parameters door, waarvan er 2 (sleutel en omgekeerd) optioneel zijn en de eerste parameter, d.w.z. itereerbaar, elk itereerbaar object kan zijn. Deze methode retourneert een gesorteerde lijst maar verandert de oorspronkelijke gegevensstructuur niet.
Voorbeeld 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']>
Voorbeeld 2:
Gebruik van een vooraf gedefinieerde functie als sleutelparameter. Dus de tweede parameter, d.w.z. sleutel wordt gebruikt om de gegeven datastructuur te sorteren op een vooraf gedefinieerde functie zoals alleen() of een door de gebruiker gedefinieerde functie. Het sorteert de waarden in de datastructuur op basis van de functie die aan de sleutelparameter is doorgegeven.
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> ))> |
>
>Uitvoer
Sorting without key parameter: ['apple', 'ball', 'cat', 'dog'] Sorting with len as key parameter: ['cat', 'dog', 'ball', 'apple']>
Voorbeeld 3:
Gebruik van de door de gebruiker gedefinieerde functie voor de sleutelparameter.
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))> |
>
>
Uitvoer
Sorteren zonder sleutelparameter: [('Amar', 89), ('Lasya', 32), ('Ramesh', 56), ('Reka', 54)]
Sorteren met op_naam als sleutelparameter: [(‘Amar’, 89), (‘Lasya’, 32), (‘Ramesh’, 56), (‘Reka’, 54)]
Sorteren met by_marks als sleutelparameter: [(‘Lasya’, 32), (‘Reka’, 54), (‘Ramesh’, 56), (‘Amar’, 89)]
Voorbeeld 4:
Dus de De derde parameter is omgekeerd die wordt gebruikt om de iterabele in aflopende of afnemende volgorde te sorteren.
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> ))> |
>
>Uitvoer
Sorting without key parameter: ['for', 'geeks', 'geeks'] Sorting with len as key parameter: ['geeks', 'geeks', 'for']>
Voorbeeld 5:
Alle drie de parameters gebruiken
Python3
hoe te converteren naar string
# 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> ))> |
>
>
Uitvoer
Sorteren zonder sleutel en omgekeerd: [(‘Amar’, 89), (‘Lasya’, 32), (‘Ramesh’, 56), (‘Reka’, 54)]
Sorteren met opnaam als sleutelparameter en omgekeerde parameter als False: [('Amar', 89), ('Lasya', 32), ('Ramesh', 56), ('Reka', 54)]
Sorteren met by_name als sleutelparameter en omgekeerde parameter als True: [('Reka', 54), ('Ramesh', 56), ('Lasya', 32), ('Amar', 89)]
Sorteren met by_marks als sleutelparameter en omgekeerde parameter als False: [('Lasya', 32), ('Reka', 54), ('Ramesh', 56), ('Amar', 89)]
Sorteren met by_marks als sleutelparameter en omgekeerde parameter als True: [('Amar', 89), ('Ramesh', 56), ('Reka', 54), ('Lasya', 32)]
Sort()-methode
Deze methode sorteert de lijst standaard in oplopende volgorde, en we kunnen de omgekeerde parameter gebruiken om in aflopende volgorde te sorteren. Deze methode verandert de oorspronkelijke lijst en retourneert niets.
Voorbeeld 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)> |
>
>Uitvoer
Original list: ['geeks', 'for', 'geeks'] Sorted list: ['for', 'geeks', 'geeks']>
Voorbeeld 2:
Gebruik van een vooraf gedefinieerde functie als sleutelparameter
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)> |
Java-geldige ID's
>
>Uitvoer
Original List: ['apple', 'ball', 'cat', 'dog'] Sorting with len as key parameter: ['cat', 'dog', 'ball', 'apple']>
Voorbeeld 3:
Gebruik van een door de gebruiker gedefinieerde functie als sleutelparameter
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)> |
>
>
Uitvoer
originele lijst: [(‘Ramesh’, 56), (‘Reka’, 54), (‘Lasya’, 32), (‘Amar’, 89)]
Sorteren met op_naam als sleutelparameter: [(‘Amar’, 89), (‘Lasya’, 32), (‘Ramesh’, 56), (‘Reka’, 54)]
originele lijst: [(‘Ramesh’, 56), (‘Reka’, 54), (‘Lasya’, 32), (‘Amar’, 89)]
Sorteren met by_marks als sleutelparameter: [(‘Lasya’, 32), (‘Reka’, 54), (‘Ramesh’, 56), (‘Amar’, 89)]
Voorbeeld 4:
Met behulp van omgekeerde 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)> |
>
>Uitvoer
original list: ['geeks', 'for', 'geeks'] sorting with reverse parameter ['geeks', 'geeks', 'for']>