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은list.sort()
함수의 대안으로 사용할 수있는 내장sorted()
함수를 제공합니다.
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