>  기사  >  백엔드 개발  >  Python은 사용자 정의 클래스 객체 정렬을 구현합니다(attrgetter 사용).

Python은 사용자 정의 클래스 객체 정렬을 구현합니다(attrgetter 사용).

不言
不言앞으로
2018-10-20 14:50:032426검색

이 문서의 내용은 사용자 정의 클래스 객체를 정렬하는 Python 구현에 대한 것입니다(attrgetter 사용). 이는 특정 참조 값을 가지고 있으므로 도움이 필요할 수 있습니다.

1. 요구사항

사용자 정의 클래스로 구성된 목록을 정렬합니다.

2. 솔루션

내장된 sorted() 함수는 호출 가능 개체를 전달하는 데 사용되는 매개 변수 키를 받아들이고, 호출 가능 개체는 정렬할 개체의 특정 값을 반환한 다음 이를 사용합니다. 객체를 비교하는 값.

예:

from operator import attrgetter
class User:
def __init__(self,userId):
self.userId=userId

def __repr__(self):
return 'User({})'.format(self.userId)

users=[User(40),User(20),User(30)]
print(users)

#方法1
print(sorted(users,key=lambda u:u.userId))

#方法2
print(sorted(users,key=attrgetter('userId')))

실행 결과:

[User(40), User(20), User(30)]
[User(20), User(30), User(40)]
[User(20), User(30), User(40)]

attrgetter는 일반적으로 조금 더 빠릅니다. 위의 계산은 min() 및 max() 함수에도 적용됩니다.

위 내용은 Python은 사용자 정의 클래스 객체 정렬을 구현합니다(attrgetter 사용).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제