Сортировка списка объектов в Python
-
Используйте метод
list.sort()
для сортировки списка объектов в Python -
Используйте функцию
sorted()
для сортировки списка объектов в Python

Списки Python не однородны, что отличает их от других типов данных, представленных в Python.
Индексирование списка начинается с 0 в качестве первого индекса и выполняется последовательно. Все элементы в списке имеют свое определенное место, из-за чего в списках допускается дублирование.
В этом руководстве будут представлены различные методы сортировки списка объектов в Python.
Используйте метод list.sort()
для сортировки списка объектов в Python
Метод list.sort()
сортирует все элементы списка в порядке возрастания или убывания.
Он содержит два необязательных параметра: key
и reverse
. Параметр key
, как следует из его названия, служит ключом для процесса сортировки. Параметр reverse
используется для определения порядка сортировки. Если значение reverse
равно True
, то сортировка происходит в обратном / убывающем порядке.
Однако функция отлично работает без использования вышеупомянутых дополнительных параметров.
Следующий код использует метод list.sort()
для сортировки списка объектов в Python.
class BankEMP:
def __init__(self, name, dept, age):
self.name = name
self.dept = dept
self.age = age
def __repr__(self):
return '{' + self.name + ', ' + self.dept + ', ' + str(self.age) + '}'
if __name__ == '__main__':
emps = [
BankEMP('Elijah', 'IT', 20),
BankEMP('Nik', 'Banking', 21),
BankEMP('Lucien', 'Finance', 19)
]
# sort list by `name` in the natural order
emps.sort(key=lambda x: x.name)
print(emps)
# sort list by `name` in reverse order
emps.sort(key=lambda x: x.name, reverse=True)
print(emps)
Выход:
[{Elijah, IT, 20}, {Lucien, Finance, 19}, {Nik, Banking, 21}]
[{Nik, Banking, 21}, {Lucien, Finance, 19}, {Elijah, IT, 20}]
Чтобы получить значение параметра key
, мы можем использовать operator.attrgetter()
.
attrgetter () импортируется из модуля operator и используется для возврата вызываемого объекта, который извлекает атрибут из своего операнда.
Следующий код использует метод list.sort()
и operator.attrgetter()
для сортировки списка объектов в Python.
from operator import attrgetter
class BankEMP:
def __init__(self, name, dept, age):
self.name = name
self.dept = dept
self.age = age
def __repr__(self):
return '{' + self.name + ', ' + self.dept + ', ' + str(self.age) + '}'
if __name__ == '__main__':
emps = [
BankEMP('Elijah', 'IT', 20),
BankEMP('Nik', 'Banking', 21),
BankEMP('Lucien', 'Finance', 19)
]
#sort list by name in the natural order using 'attrgetter()'
emps.sort(key=attrgetter('name'))
print(emps)
Выход:
[{Elijah, IT, 20}, {Lucien, Finance, 19}, {Nik, Banking, 21}]
Используйте функцию sorted()
для сортировки списка объектов в Python
Python предоставляет встроенную функцию sorted()
, которая может служить альтернативой функции list.sort()
.
В то время как list.sort()
не возвращает какое-либо конкретное значение и вносит изменения в исходный список, функция sorted()
возвращает отсортированный список, а не вносит какие-либо изменения в исходный список.
Функция sorted()
содержит только reverse
в качестве необязательного параметра.
Следующий код использует функцию sorted()
для сортировки списка объектов в Python.
class BankEMP:
def __init__(self, name, dept, age):
self.name = name
self.dept = dept
self.age = age
def __repr__(self):
return '{' + self.name + ', ' + self.dept + ', ' + str(self.age) + '}'
if __name__ == '__main__':
emps = [
BankEMP('Elijah', 'IT', 20),
BankEMP('Nik', 'Banking', 21),
BankEMP('Lucien', 'Finance', 19)
]
#sort list in natural order of name using sorted() function
sort1= sorted(emps, key=lambda x: x.name)
print(sort1)
Выход:
[{Elijah, IT, 20}, {Lucien, Finance, 19}, {Nik, Banking, 21}]
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedInСопутствующая статья - Python List
- В чем разница между списочными методами добавлять и расширять
- Как преобразовать список в струну на Python
- Как соединить два или несколько списков на Python
- В чем разница между делом, удалением и попаданием в списки Pythonа
- Как быстро проверить, существует ли значение в списке Python
- Как дублировать список на Python