Python Список sort() із прикладами

Що таке метод sort(). Python?

Функція сортування в Python допомагає сортувати список у порядку зростання або спадання. Його можна використовувати для сортування числового списку, кортежів і списку рядків. Він не створює окремий список, але змінює або сортує оригінал.

Синтаксис методу сортування в Python

Функція сортування має такий синтаксис, як зазначено нижче: –

List.sort(key=…, reverse=…)

Функція сортування має два додаткові параметри, а саме: –

  • Ключ: використовується для сортування функції на основі критерію сортування.
  • Reverse: – приймає значення як true або false. Якщо значення true, ця спеціальна функція сортує список у порядку спадання.

Сортування списку в порядку зростання за допомогою методу Sort in Python

In Python, функція сортування за замовчуванням сортує будь-який список у порядку зростання. Список у порядку зростання має найменше значення ліворуч, а найвище значення – праворуч.

приклад:

Python Код:

base_list=["Google","Reliance","Guru99","Content","Syntax"]
base_list.sort()
print("the base list after sorting is",base_list)

вихід:

the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']

Пояснення коду:

  • Наведений вище список є довільно визначеним списком рядків.
  • Функція сортування Python допомагає сортувати випадковий список у порядку зростання, з найменшою довжиною слова в лівій частині та найбільшою довжиною слова в правій частині.

Сортування списку в порядку спадання

Функція сортування також дозволяє сортувати список у порядку спадання. Його можна визначити як порядок де список починається з найвищого значення і закінчується найменшим значенням.

Параметру reverse функції сортування призначається значення true, щоб отримати список, відсортований у порядку спадання.

Давайте розглянемо наведений нижче приклад: –

Python Код:

base_list=[100,600,400,8000,50]
base_list.sort()
print("the base list after sorting is",base_list)
# Reverse Order
base_list.sort(reverse=True)
print("the base list after REVERSE sorting is",base_list)

вихід:

the base list after sorting is [50, 100, 400, 600, 8000]
the base list after REVERSE sorting is [8000, 600, 400, 100, 50]

Примітка. Переконайтеся, що призначення слова «True» зворотному параметру починається з великої літери «T», щоб уникнути будь-яких помилок під час виконання.

Сортування списку кортежів за допомогою методу Sort in Python

Python Кортежі це колекції незмінних елементів, які дотримуються впорядкованої послідовності. PythonФункцію сортування можна використовувати для сортування списку кортежів за допомогою спеціальної функції та лямбда-виразу.

Налаштована функція може бути створена без імені та представлена ​​лямбда-виразом. Нижче наведено синтаксис лямбда-виразу: –

Синтаксис:

Lambda arguments: expression

Наведений вище синтаксис еквівалентний наведеному нижче коду python:

def name (arguments):
return expression

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

Python Код:

base_list = [('Alto', 2020, 500),('MSFT', 2022, 300),('Guru99', 2019, 1070)]
def get_key(base_list):
    return base_list[2]
base_list.sort(key=get_key,reverse=True)
print("The change in base list is as follows",base_list)

вихід:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

Пояснення коду:

  • Параметр reverse визначається як true для сортування кортежу в порядку спадання.
  • Налаштована функція приймає другий елемент кортежу.
  • Це використовується як ключ функції сортування.

Давайте розглянемо наведений нижче приклад, у якому використовується лямбда-вираз:

Python Код:

base_list = [('Alto', 2020, 500),
('MSFT', 2022, 300),
('Guru99', 2019, 1070)]
base_list.sort(key=lambda base_list:base_list[2],reverse=True)
print("The change in base list is as follows",base_list)

вихід:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

Пояснення:

  • Лямбда-вираз допомагає сортувати елементи кортежу від високого до нижчого з ключем як другим елементом кортежу.
  • Програма перевірить найбільше значення другого елемента кортежу.

Сортування елементів списку за допомогою Len як ключового параметра

Len — це вбудована функція, яка визначає довжину елемента. Визначену довжину можна використовувати для індексування у функції сортування. Для цього ми призначаємо Len до Python ключовий параметр функції сортування.

Наступні Python код ілюструє, як використовувати функцію Len із функцією сортування.

Python код:

base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len)
print("The sorted list based on length:",base_list)

вихід:

The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']

Пояснення коду:

Сортування елементів списку за допомогою Len

  • Довжина елемента стає індексом для ключового параметра для впорядкування списку в порядку зростання.
  • Функція Len оцінює довжину кожного елемента в базовому списку.
  • Він зберігає найкоротший елемент з лівого боку, а найбільший елемент з правого боку.
  • Тут слова alto та java мають довжину 4, які розташовані першими у списку, за ними йде Guru99, яке має довжину 6.

Цей приклад ілюструє концепцію зворотного параметра у функції сортування, як показано нижче: –

Python код:

base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len,reverse=True)
print("The sorted list based on length:",base_list)

вихід:

The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']

Сортування елементів списку за допомогою функції, визначеної користувачем, як ключового параметра

Ви також можете використовувати функцію, визначену користувачем, як ключовий параметр для сортування списку. Ось приклад: –

Python код:

base_list = [{'Example':'Python','year':1991},{'Example':'Alto','year':2014},{'Example':'Guru99', 'year':1995},
{'Example':'Google','year':1985},{'Example':'Apple','year':2007},{'Example':'Emails','year':2010},]
def get_year(element):
    return element['year']
base_list.sort(key=get_year)
print("The base list after sorting using explicit criteria",base_list)

вихід:

The base list after sorting using explicit criteria [{'Example': 'Google', 'year': 1985}, {'Example': 'Python', 'year': 1991}, {'Example': 'Guru99', 'year': 1995}, {'Example': 'Apple', 'year': 2007}, {'Example': 'Emails', 'year': 2010}, {'Example': 'Alto', 'year': 2014}]

Пояснення коду:

  • Для повернення року створюється визначена користувачем функція
  • Ключовий параметр бере в якості критерію функцію, визначену користувачем.
  • Функція сортування впорядкує список у порядку зростання на основі значення елемента «рік».

Різниця між методом сортування та методом сортування в Python

Перш ніж узагальнити відмінності, давайте розберемося з синтаксисом методу Sorted.

Python Синтаксис:

sorted (list_name, reverse=…., key=..)

Пояснення коду:

  • Функція sorted сортує список у порядку зростання або спадання.
  • Функція приймає три параметри, з яких два параметри є необов’язковими, а один параметр – обов’язковим.
  • Параметр list_name є обов’язковим під час використання методу Sorted.
  • Метод Sorted може приймати будь-який тип ітерованого списку як вхідні дані.
  • Ключові параметри та зворотні параметри є необов’язковими параметрами в методі сортування в Python.

Ось приклад використання функції sort і sorted у Python як показано нижче: –

Python Код:

#Use of the Sorted method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=sorted(Base_list)
print("the New list using sorted method is",New_list)
#Use of the Sort method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=Base_list.sort()
print("the New list using sort method is",New_list)

вихід:

the original list is [11, 10, 9, 8, 7, 6]
the new list using the sorted method is [6, 7, 8, 9, 10, 11]
the original list is [11, 10, 9, 8, 7, 6]
the new list using the sort method is None

Пояснення коду:

  • Вихідний список передається як обов’язковий параметр для відсортованої функції.
  • Метод Sorted повертає новий список, окрім початкового списку.
  • Оскільки додаткові параметри не передаються до сортованого методу, новий список за замовчуванням сортується за зростанням.
  • Функція сортування не створює нового списку.

Нижче наведено ключові подібності та відмінності: –

Відсортована функція Функція сортування
Відсортована функція в Python це вбудована функція, яка приймає list_name як обов’язковий параметр. Функція сортування не приймає вихідний список як параметр.
Метод Sorted повертає новий список Функція сортування не повертає новий список
Функцію Sorted слід використовувати для ітерованих списків Функцію сортування слід використовувати для неітерованих списків.
Він не змінює оригінальний список і дозволяє нам зберігати вихідні дані. Функція сортування змінює вихідну функцію і, отже, займає менше місця в пам’яті

Коли використовувати сортований метод або метод сортування?

Розглянемо приклад, який потребує сортування даних про перегони. Програма використовує номер стартового номера та час, затрачений у секундах, щоб закінчити гонку.

Python Код:

from collections import namedtuple
Base = namedtuple('Runner', 'bibnumber duration')
blist = []
blist.append(Base('8567', 1500))
blist.append(Base('5234', 1420))
blist.append(Base('2344', 1600))
blist.append(Base('2342', 1490))
blist.append(Base('23444', 1620))
blist.append(Base('6674', 1906))
print("original list",blist)
blist.sort(key=lambda x: getattr(x, 'duration'))
top_five_result = blist[:5]
print("Results using sort function",top_five_result)
r_blist=sorted(blist,key=lambda x: getattr(x, 'duration'))
top_five_result = r_blist[:5]
print("Results using sorted function",top_five_result)

вихід:

original list [Runner(bibnumber='8567', duration=1500), Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='23444', duration=1620), Runner(bibnumber='6674', duration=1906)]

Results using sort function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

Results using sorted function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

Пояснення коду:

  • Базовий список сортується за допомогою функції сортування та функції сортування.
  • Під час застосування функції сортування базовий список втрачається.
  • Функцію сортування не слід застосовувати до вихідного набору даних. Його слід використовувати, якщо є копія вихідного набору даних.
  • Функція Sorted зберігає вихідний список. Це не перекриває його.
  • Це забезпечує кращу відстежуваність та ефективне керування даними.

Висновок

  • Функція сортування допомагає сортувати числовий і рядковий список у python.
  • Це також може допомогти в сортуванні кортежів.
  • Reverse і key є необов'язковими параметрами функції.
  • Якщо є потреба мати окремий список і одночасно мати оригінальний список, тоді слід використовувати функцію сортування, інакше слід використовувати функцію сортування для досягнення оптимізованого використання пам’яті.