Функція sorted() в Python

 5600

Функція sorted() сортує елементи вказаного ітерованого об’єкта в певному порядку (за зростанням або за спаданням) і повертає їх у вигляді списку. Наприклад:

Результат:

[2, 4, 8, 12]

Синтаксис функції sorted()

Параметри функції sorted()

Функція sorted() може приймати максимум три параметри:

   iterable — послідовність (рядок, кортеж, список) або колекція (множина, словник, заморожена множина) або будь-який інший ітератор;

   key (не обов’язково) — функція, яка є ключем для виконання сортування. За замовчуванням використовується None;

   reverse (не обов’язково) — якщо значення дорівнює True, то відсортований список буде “зворотним” (або відсортованим за спаданням). За замовчуванням використовується значення False.

Значення, яке повертає функція sorted()

Функція sorted() повертає відсортований список.

Приклад №1: Сортування списку, рядку та кортежу

Результат:

['a', 'e', 'i', 'o', 'u']
['P', 'h', 'n', 'o', 't', 'y']
['a', 'e', 'i', 'o', 'u']

Зверніть увагу, що у всіх випадках повертається відсортований список.

Примітка: Список також має метод sort(), який працює аналогічно функції sorted(). Єдина відмінність полягає в тому, що метод sort() не повертає жодного значення та змінює вихідний список.

Приклад №2: Сортування у порядку спадання

Функція sorted() приймає параметр reverse як необов’язковий аргумент. Установка reverse = True сортує ітерований об’єкт в порядку спадання.

Результат:

['u', 'o', 'i', 'e', 'a']
['u', 'o', 'i', 'e', 'a']
['u', 'o', 'i', 'e', 'a']

Параметр key в функції sorted() в Python

Якщо потрібна власна реалізація сортування, то функція sorted() приймає функцію key як необов’язковий параметр. На основі поверненого значення key ми можемо відсортувати вказаний ітерований об’єкт.

Тут len() — це вбудована функція в Python для обчислення довжини об’єкта. Список сортується в залежності від довжини елемента, від найменшого значення до найбільшого.

Приклад №3: Сортування списку за допомогою функції sorted(), яка має функцію key

Результат:

Sorted list: [(4, 1), (2, 2), (1, 3), (3, 4)]

Приклад №4: Сортування з кількома ключами

Припустимо, що ми маємо наступний список:

Ми хочемо відсортувати список таким чином, щоб студенти з високими оцінками були на початку. Якщо у студентів однакові оцінки, їх необхідно відсортувати так, щоб молодший учасник виявився першим. Ми можемо досягти такого типу сортування з кількома ключами, повертаючи кортеж замість числа.

Два кортежі можна порівняти, починаючи з першого елемента. Якщо елементи рівні, порівнюється другий елемент і так далі.

Скористаємося цією логікою для побудови нашої логіки сортування:

Результат:

[('Jimmy', 90, 22), ('Terence', 75, 22), ('David', 75, 20), ('Alison', 50, 18), ('John', 45, 22)]

Оскільки логіка сортування всередині функції невелика і вкладається в один рядок, то лямбда-функція використовується всередині параметра key, а не передається як окреме ім’я функції.

Вищенаведена програма може бути переписана з використанням лямбда-функції наступним чином:

Результат:

[('Jimmy', 90, 22), ('Terence', 75, 22), ('David', 75, 20), ('Alison', 50, 18), ('John', 45, 22)]

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (6 оцінок, середня: 4,67 з 5)
Завантаження...

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *