Функцію сортування можна використовувати для сортування списку як за зростанням, так і за спаданням. Його можна використовувати для сортування списків цілих чисел, чисел із плаваючою комою, рядків тощо Python . Його часова складність дорівнює O(NlogN).
Синтаксис Python sort().
Синтаксис функції sort() у Python такий.
Синтаксис: list_name.sort(key=…, reverse=…)
Параметри:
За замовчуванням Python sort() не потребує додаткових параметрів і сортує список у порядку зростання. Однак він має два необов’язкові параметри:
- ключ: функція, яка служить ключем для порівняння сортування
- зворотний: Якщо істина, список сортується в порядку спадання.
Повернене значення: Функція sort() нічого не повертає, але змінює вихідний список відповідно до переданого параметра.
Що таке функція sort() Python?
У Python,sort()>
функція — це метод, який належить до списку. Він використовується для сортування в python або елементів списку в порядку зростання за замовчуванням. Thesort()>
метод змінює оригінальний список на місці, тобто він переставляє елементи безпосередньо в існуючому об’єкті списку, а не створює новий відсортований список.
Sort() у прикладах Python
Базовий приклад методу sort() Python.
C# дата і час
приклад: У цьому прикладі наведений нижче код визначає список з назвоюunsorted_list>
з числовими елементами. Thesort()>
метод потім застосовується до списку, який переставляє його елементи в порядку зростання. Відсортований список потім друкується, показуючи результат операції сортування.
Python3
unsorted_list> => [> 2> ,> 4> ,> 5> ,> 32> ,> 6> ,> 255> ,> 5> ,> 42> ]> unsorted_list.sort()> print> (> 'Now it is sorted:'> , unsorted_list)> |
>
>
Вихід:
Now it is sorted: [2, 4, 5, 5, 6, 32, 42, 255]>
Різні способи сортування () у Python
У Python,sort()>
це вбудований метод, який використовується для сортування елементів у списку в порядку зростання. Він змінює вихідний список на місці, тобто змінює порядок елементів безпосередньо в списку без створення нового списку. Thesort()>
метод не повертає жодного значення; він просто сортує список і оновлює його.
- Сортування Список у порядку зростання
- Сортування Список у порядку спадання
- Сортувати з призначена для користувача функція Використання ключа
- Сортування Список рядків за довжиною
- Список сортування Кортежі за конкретним елементом
- Список сортування словники за певним ключем
Sort() у Python за допомогою списку сортування за зростанням
Метод `sort()` у Python використовується для сортування списку елементів у порядку зростання. Він змінює вихідний список на місці, переставляючи його елементи в порядку збільшення числа або лексикографії. Метод застосовний до списків, що містять числові значення, рядки або їх комбінацію. За замовчуванням функція sort() у Python сортує список у порядку зростання, якщо ми не надаємо йому жодних параметрів.
приклад : у цьому прикладі наведений нижче код демонструє операції сортування для різних типів списків. Спочатку він сортує список цілих чисел (`чисел`) у порядку зростання за допомогою методу `sort()`. Далі він сортує список чисел з плаваючою комою (`десяткове число`) у порядку зростання.
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)> |
>
>
Вихід:
[1, 2, 3, 4] [1.68, 2.0, 2.01, 3.28, 3.67] ['For', 'Geeks', 'Geeks']>
Sort() у Python за допомогою списку сортування в порядку спадання
Щоб відсортувати список у порядку спадання, установіть для параметра reverse значення True функції sort() у Python.
my_list.sort(reverse=True)>
Приклад: Я n цей приклад коду визначає три списки різних типів (цілі числа, числа з плаваючою комою та рядки), сортує їх у порядку спадання за допомогою методу `sort` з параметром `reverse=True`, а потім друкує відсортовані списки.
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)> |
>
>
Вихід:
[4, 3, 2, 1] [3.67, 3.28, 2.01, 2.0, 1.68] ['Geeks', 'Geeks', 'For']>
Сортувати за допомогою спеціальної функції за допомогою ключа
У цьому методі описується операція сортування за допомогою спеціальної функції за допомогою параметра key. Це дозволяє сортувати на основі певного критерію, визначеного спеціальною функцією, а не порядку за замовчуванням. Спеціальна функція застосовується до кожного елемента, а список сортується відповідно.
приклад : у цьому прикладі код визначає функцію `sortSecond`, яка повертає другий елемент кортежу. Потім він створює список кортежів, `list1`, і сортує його в порядку зростання на основі другого елемента за допомогою функції `sortSecond`.
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)> |
>
>
Вихід:
[(1, 1), (1, 2), (3, 3)] [(3, 3), (1, 2), (1, 1)]>
Сортування списку рядків за довжиною в Sort() у Python
У цьому методі ми сортуємо список рядків у порядку зростання їхньої довжини за допомогою функції `sort()` з `key=len`. Це означає, що рядки впорядковані від найкоротшої до найдовшої довжини в отриманому відсортованому списку.
приклад: У цьому прикладі код нижче визначає список рядків,words>
, а потім сортує його на основі довжини кожного рядка за допомогоюlen()>
функціонувати як ключ сортування. Нарешті, він друкує відсортований список.
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)> |
>
>
Вихід:
Sorted by Length: ['kiwi', 'apple', 'grape', 'banana', 'orange']>
Сортування списку кортежів за певним елементом
Щоб відсортувати список кортежів за певним елементом, використовуйте функцію `sort()` з параметром `key`. Вкажіть лямбда-функцію як ключ, орієнтуючись на індекс потрібного елемента. Кортежі будуть відсортовані на основі значень цього конкретного елемента.
приклад: У цьому коді методу визначено список кортежів під назвою «люди», де кожен кортеж представляє ім’я та вік людини. Потім він сортує список на основі другого елемента кожного кортежу (вік), використовуючиsort>
метод і лямбда-функція як ключ сортування.
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)> |
>
>
Вихід:
Sorted by Age: [('Charlie', 22), ('Alice', 25), ('David', 28), ('Bob', 30)]>
Сортування списку словників за певним ключем
Цей метод передбачає використання функції `sort()` для списку словників у Python. Вказавши лямбда-функцію як параметр ключа, ви можете сортувати список на основі певного ключа в кожному словнику. Це дає змогу впорядкувати список словників у порядку зростання відповідно до значень, пов’язаних із вибраним ключем.
приклад : у цьому прикладі код визначає список викликаних словниківstudents>
, де кожен словник представляє учня з ключами імені та віку. Потім він сортує список словників на основі вікового ключа в кожному словнику за допомогоюsort>
метод і лямбда-функція як ключ.
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)> |
>
>
Вихід:
Sorted by Age: [ {'name': 'Charlie', 'age': 22}, {'name': 'Alice', 'age': 25}, {'name': 'David', 'age': 28}, {'name': 'Bob', 'age': 30} ]>
Різниця між функцією sorted() і sort() у Python
Давайте побачимо різницю між відсортовано() і функція sort() у Python:
Python sorted() | Python sort() |
---|---|
Функція sorted() повертає відсортований список конкретного ітерованого об’єкта. | Метод sort() сортує список. |
Використовуючи функцію sorted(), ми можемо вказати порядок зростання або спадання | За замовчуванням він сортує список у порядку зростання. |
Синтаксис : відсортований (ітерований, ключ=ключ, зворотний=зворотний) | Синтаксис : list.sort(reverse=True|False, key=myFunc) |
Його тип повернення — відсортований список. | Ми також можемо використовувати його для сортування списку в порядку спадання. |
Можна використовувати з будь-яким ітерованим, навіть якщо порівняння між елементами не визначено | Вимагає, щоб елементи були порівнювані за допомогою |
Підтримує відносний порядок рівних елементів, роблячи його стабільним. | Може бути не стабільним; порядок рівних елементів може змінюватися. |
O(n log n) часова складність для більшості випадків. | O(n log n) часова складність для більшості випадків. |
Він може сортувати лише список, який містить лише один тип значення. | Він сортує список за місцем. |
Підтримує a | Також підтримує a |
Потрібна додаткова пам'ять для нового відсортованого списку. | Виконує сортування на місці, заощаджуючи пам'ять. |
Щоб дізнатися більше, зверніться Різниця Python між функціями sorted() і sort(). .