Python List sort()
В этом руководстве мы узнаем о методе Python sort() с помощью примеров.
Метод sort()
сортирует элементы списка в порядке возрастания или убывания.
Пример
prime_numbers = [11, 3, 7, 5, 2]# сортировка списка по возрастанию prime_numbers.sort()
печать (простые_числа) # Вывод: [2, 3, 5, 7, 11]
sort() Синтаксис
Синтаксис sort() 9Метод 0006:
list.sort(key=..., reverse=...)
В качестве альтернативы вы также можете использовать встроенную функцию Python sorted() для той же цели.
sorted(list, key=..., reverse=...)
Примечание: Простейшее различие между sort()
и sorted()
заключается в следующем: sort()
изменяет список напрямую и не возвращает никакого значения, а sorted()
не изменяет список и возвращает отсортированный список.
Параметры sort()
По умолчанию sort()
не требует дополнительных параметров. Однако у него есть два необязательных параметра:
- reverse - Если
True
, отсортированный список инвертируется (или сортируется в порядке убывания) - ключ - функция, служащая ключом для сравнения сортировки
sort() Возвращаемое значение
Метод sort()
не возвращает никакого значения. Скорее, он изменяет первоначальный список.
Если вы хотите, чтобы функция возвращала отсортированный список, а не изменяла исходный список, используйте sorted()
.
Пример 1: Сортировка заданного списка
# список гласных гласные = ['e', 'a', 'u', 'o', 'i']# отсортировать гласные гласные.sort()
# печатать гласные print('Сортированный список:', гласные)
Вывод
Отсортированный список: ['a', 'e', 'i', 'o', 'u']
Сортировка в порядке убывания
sort() 9Метод 0006 принимает обратный параметр
в качестве необязательного аргумента.
Параметр reverse = True
сортирует список в порядке убывания.
list.sort(reverse=True)
В качестве альтернативы sorted()
вы можете использовать следующий код.
sorted(list, reverse=True)
Пример 2. Сортировка списка по убыванию
# список гласных гласные = ['e', 'a', 'u', 'o', 'i']# отсортировать гласные vowels.sort(reverse=True)
# печатать гласные print('Отсортированный список (по убыванию):', гласные)
Вывод
Отсортированный список (по убыванию): ['u', 'o', 'i', 'e', 'a']
Сортировка с помощью пользовательской функции с помощью клавиши
Если вы хотите свою собственную реализацию для сортировки, метод sort()
также принимает функцию key
в качестве необязательного параметра.
По результатам работы ключевой функции можно отсортировать заданный список.
list. sort(key=len)
В качестве альтернативы sorted:
sorted(list, key=len)
Здесь len
— встроенная функция Python для подсчета длины элемента.
Список отсортирован по длине каждого элемента, от меньшего к большему.
Мы знаем, что кортеж по умолчанию сортируется по первому параметру. Давайте посмотрим, как настроить метод sort()
для сортировки с использованием второго элемента.
Пример 3: Сортировка списка с помощью клавиши
# взять второй элемент для сортировки Def TakeSecond (элемент): возврат элемента[1] # случайный список случайный = [(2, 2), (3, 4), (4, 1), (1, 3)]# отсортировать список по ключу random.sort(key=takeSecond)
# распечатать список print('Сортированный список:', random)
Вывод
Отсортированный список: [(4, 1), (2, 2), (1, 3), (3, 4)]
Возьмем другой пример. Предположим, у нас есть список информации о сотрудниках офиса, где каждый элемент является словарем.
Список можно отсортировать следующим образом:
# сортировка по пользовательскому ключу сотрудники = [ {'Имя': 'Алан Тьюринг', 'возраст': 25, 'зарплата': 10000}, {'Имя': 'Шарон Лин', 'возраст': 30, 'зарплата': 8000}, {'Имя': 'Джон Хопкинс', 'возраст': 18, 'зарплата': 1000}, {'Имя': 'Михаил Таль', 'возраст': 40, 'зарплата': 15000}, ] # пользовательские функции для получения информации о сотрудниках def get_name (сотрудник): вернуть сотрудника.get('Имя') def get_age (сотрудник): вернуть сотрудника.get('возраст') def get_salary (сотрудник): вернуть employee.get('зарплата') # сортировать по имени (по возрастанию) employee.sort(key=get_name) печать (сотрудники, конец = '\n\n')# сортировать по возрасту (по возрастанию) employee.sort (ключ = get_age)
печать (сотрудники, конец = '\n\n')# сортировать по зарплате (По убыванию) employee.sort (key = get_salary, reverse = True)
print(employees, end='\n\n')
Вывод
[{'Имя': 'Алан Тьюринг', 'возраст': 25, 'зарплата': 10000}, {'Имя': 'Джон Хопкинс', 'возраст': 18, 'зарплата': 1000}, {' Имя': 'Михаил Таль', 'возраст': 40, 'зарплата': 15000}, {'Имя': 'Шарон Лин', 'возраст': 30, 'зарплата': 8000}] [{'Имя': 'Джон Хопкинс', 'возраст': 18, 'зарплата': 1000}, {'Имя': 'Алан Тьюринг', 'возраст': 25, 'зарплата': 10000}, {'Имя ': 'Шарон Лин', 'возраст': 30, 'зарплата': 8000}, {'Имя': 'Михаил Таль', 'возраст': 40, 'зарплата': 15000}] [{'Имя': 'Михаил Таль', 'возраст': 40, 'зарплата': 15000}, {'Имя': 'Алан Тьюринг', 'возраст': 25, 'зарплата': 10000}, {'Имя ': 'Шарон Лин', 'возраст': 30, 'зарплата': 8000}, {'Имя': 'Джон Хопкинс', 'возраст': 18, 'зарплата': 1000}]
Здесь, для первого случая, наша пользовательская функция возвращает имя каждого сотрудника. Поскольку имя представляет собой строку
, Python по умолчанию сортирует ее в алфавитном порядке.
Во втором случае возраст ( int
) возвращается и сортируется в порядке возрастания.
В третьем случае функция возвращает зарплату ( int
) и сортирует в порядке убывания, используя reverse = True
.
Рекомендуется использовать лямбда-функцию, если ее можно описать одной строкой. Таким образом, мы также можем написать приведенную выше программу как:
# сортировка по пользовательскому ключу сотрудники = [ {'Имя': 'Алан Тьюринг', 'возраст': 25, 'зарплата': 10000}, {'Имя': 'Шарон Лин', 'возраст': 30, 'зарплата': 8000}, {'Имя': 'Джон Хопкинс', 'возраст': 18, 'зарплата': 1000}, {'Имя': 'Михаил Таль', 'возраст': 40, 'зарплата': 15000}, ]# сортировать по имени (по возрастанию) employee.sort (key = lambda x: x.get («Имя»))
печать (сотрудники, конец = '\n\n')# сортировать по возрасту (по возрастанию) employee.
sort (key = lambda x: x.get ('возраст')) печать (сотрудники, конец = '\n\n') # сортировать по зарплате (По убыванию) employee.sort (key = lambda x: x.get («зарплата»), reverse = True)
print(employees, end='\n\n')
Вывод
[{'Имя': 'Алан Тьюринг', 'возраст': 25, 'зарплата': 10000}, {'Имя': 'Джон Хопкинс', 'возраст': 18, 'зарплата': 1000}, {' Имя': 'Михаил Таль', 'возраст': 40, 'зарплата': 15000}, {'Имя': 'Шарон Лин', 'возраст': 30, 'зарплата': 8000}] [{'Имя': 'Джон Хопкинс', 'возраст': 18, 'зарплата': 1000}, {'Имя': 'Алан Тьюринг', 'возраст': 25, 'зарплата': 10000}, {'Имя ': 'Шарон Лин', 'возраст': 30, 'зарплата': 8000}, {'Имя': 'Михаил Таль', 'возраст': 40, 'зарплата': 15000}] [{'Имя': 'Михаил Таль', 'возраст': 40, 'зарплата': 15000}, {'Имя': 'Алан Тьюринг', 'возраст': 25, 'зарплата': 10000}, {'Имя ': 'Шарон Лин', 'возраст': 30, 'зарплата': 8000}, {'Имя': 'Джон Хопкинс', 'возраст': 18, 'зарплата': 1000}]
Рекомендуемые показания
- Python Lambda
- Python sorted()
Оператор SQL SORT BY | База данныхЖурнал
Поиск
В реляционных базах данных оператор SQL ORDER BY является мощным инструментом для сортировки данных в таблице. Оператор используется для упорядочивания запрошенных данных в строки в определенном порядке на основе одного или нескольких столбцов. В этом руководстве по программированию баз данных мы узнаем, как использовать SQL 9.0236 Оператор ORDER BY для сортировки полученных данных в порядке по возрастанию или по убыванию .
Прочитано: Лучшие курсы для администраторов баз данных
Синтаксис инструкции SQL ORDER BY
Синтаксис инструкции SQL ORDER BY
SELECT columnA, columnB, columnC ИЗ table_example ORDER BY столбец A, столбец B, столбец C ASC|DESC;
В приведенном выше примере кода Оператор SELECT используется, чтобы сначала выбрать столбцы для отображения из данной таблицы. Затем оператор FROM определяет имя таблицы, из которой будут извлекаться данные. Затем оператор ORDER BY сортирует полученные данные в порядке возрастания или убывания на основе одного (или нескольких) столбцов.
Ключевые слова ASC и DESC являются необязательными параметрами ORDER BY , которые определяют порядок сортировки. АСК — сокращение от по возрастанию — является порядком сортировки по умолчанию, а DESC — сокращение от по убыванию — сортирует данные в обратном порядке.
Как сортировать данные в порядке возрастания в SQL
В базах данных SQL разработчики баз данных могут сортировать данные в порядке возрастания, используя оператор SQL ORDER BY и необязательный параметр (обсуждаемый выше) ASC рядом со столбцом (или столбцы), по которым вы хотите выполнить сортировку.
Например, если у программиста или администратора базы данных есть таблица с именем сотрудников со столбцами: employee_id , first_name last_name и Hire_date . Если бы мы хотели отсортировать запрошенные данные в порядке возрастания по столбцу last_name , мы могли бы использовать следующий пример SQL-запроса:
SELECT * FROM сотрудников ЗАКАЗАТЬ ПО фамилии ASC;
Приведенный выше запрос выбирает каждый столбец из таблицы сотрудников . Затем он сортирует данные в порядке возрастания по столбец last_name .
Как сортировать данные в порядке убывания в SQL
ВЫБРАТЬ * ОТ сотрудников ORDER BY last_name DESC;
Приведенный выше запрос извлекает все столбцы из таблицы сотрудников , а затем сортирует данные по last_name в порядке убывания.
Как сортировать по нескольким столбцам в SQL с помощью инструкции ORDER BY
Администраторы и программисты баз данных могут также выполнять сортировку по нескольким столбцам с помощью инструкции SQL ORDER BY . Для этого все, что вам нужно сделать, это отметить, какие столбцы вы хотите отсортировать в Предложение ORDER BY с использованием запятых в качестве разделителей. Извлеченные данные сортируются сначала , затем по первому столбцу, затем , затем по второму столбцу. Если имеется более двух предложений сортировки, сортировка продолжается в ожидаемом порядке. Например, если мы хотим отсортировать нашу таблицу сотрудников по столбцу last_name , а затем , а затем , используя столбец first_name , мы должны использовать приведенный ниже SQL-запрос:
SELECT * FROM employee ORDER BY last_name ASC, first_name ASC;
Приведенный выше SQL-запрос извлекает каждый столбец из таблицы сотрудников , а затем сортирует информацию по возрастанию, используя столбец last_name . В случаях, когда несколько сотрудников имеют одинаковую фамилию, возвращаемые данные будут отсортированы в порядке возрастания по столбцу
Прочитано: Программное обеспечение для управления проектами для разработчиков баз данных
Как сортировать данные по вычисляемым столбцам в SQL
Разработчики баз данных и администраторы баз данных также могут сортировать данные по столбцам в таблице, используя вычисляемые столбцы. Вычисляемые столбцы — это столбцы, которые создаются, когда мы используем расчет или уравнение для одного или нескольких существующих столбцов в таблице. Например, в нашей таблице сотрудников , если мы хотим отсортировать по сумме столбцов зарплата и бонус в порядке возрастания, мы могли бы использовать следующий SQL-запрос:
SELECT *, зарплата + бонус как total_income ОТ сотрудников ORDER BY total_income ASC;
Приведенный выше SQL-запрос выбирает все столбцы из таблицы сотрудников , а затем создает вычисляемый столбец с именем total_income , используя сумму зарплаты и премии . Затем возвращенные данные сортируются в порядке возрастания с помощью столбца total_income .
Как сортировать данные по псевдонимам в SQL с помощью ORDER BY
В некоторых случаях программистам баз данных может понадобиться сортировать данные с помощью псевдоним , который мы определяем в нашем операторе SELECT . Для этого поместите псевдоним в предложение ORDER BY .
В качестве примера, используя нашу таблицу сотрудников , скажем, мы хотели отсортировать наши данные, используя таблицу total_income , которую мы установили в качестве псевдонима, в порядке убывания, мы можем использовать следующий SQL-запрос и оператор:
SELECT *, оклад + премия как total_income ОТ сотрудников ORDER BY total_income DESC;
Наш пример запроса работает путем выбора каждого столбца из нашей таблицы сотрудников и создает новый вычисляемый столбец с именем total_income (наш псевдоним столбца с именем) путем сложения вместе столбцов зарплата и бонус . Затем эти данные сортируются в порядке убывания с использованием нашего нового столбца total_income .
Сортировка данных по значениям NULL
Иногда вам нужно отсортировать данные в реляционной базе данных, содержащей NULL значение; запрос такого рода данных может вызвать проблемы, если разработчик базы данных не учитывает эту возможность. Причина этого в том, что NULL технически не является значением, а скорее заполнителем, представляющим отсутствие значения. Если вы сортируете данные, содержащие NULL , они обычно сортируются либо по началу , либо по концу результатов, в зависимости от того, как вы установили порядок сортировки.
Разработчики могут указать, где сортируются значения NULL, с помощью NULLS FIRST или NULLS LAST ключевые слова в предложении ORDER BY . Допустим, вы хотели отсортировать таблицу « сотрудников» в порядке возрастания, используя столбец manager_id , со значениями NULL , отсортированными последними.