Bạn có thể sắp xếp một mảng của myclass
bằng lập luận key
đến sorted
chức năng:Python: Sắp xếp lớp tùy chỉnh mà không sử dụng đối số `khóa`?
sortedlist = sorted(myclasses, key=lambda obj: obj.myproperty)
Có cách nào để xác định một trật tự tự nhiên cho các lớp học của chúng tôi? Có lẽ một số phương pháp kỳ diệu để chúng ta không phải vượt qua một chìa khóa mỗi lần?
ví dụ
class myclass:
def __init__(self,a,b):
self.key1 = a
self.key2 = b
def __sortkey__(self):
return self.key2
Hoặc sẽ một cách tự nhiên có tác dụng nếu chúng ta định nghĩa __le__
lẽ?
Ah. Tốt đẹp! Không thể tìm thấy nó trong http://docs.python.org/library/functions.html#sorted – mpen
Lưu ý rằng '__cmp__' không hoạt động trong Python 3 – samfrances