Tôi đang xem một số mã có nhiều cuộc gọi sắp xếp bằng cách sử dụng các hàm so sánh và có vẻ như nó nên sử dụng các hàm chính.lambda so với operator.attrgetter ('xxx') như chức năng khóa sắp xếp trong Python
Nếu bạn đã thay đổi seq.sort(lambda x,y: cmp(x.xxx, y.xxx))
, đó là một lợi thế:
seq.sort(key=operator.attrgetter('xxx'))
hay:
seq.sort(key=lambda a:a.xxx)
Tôi cũng sẽ quan tâm đến ý kiến về những giá trị của việc thay đổi mã hiện có mà làm việc.
tôi đồng ý với câu trả lời của Alex (đó là anh ấy không có người yêu lambda) :-) nhưng cũng thứ hai khái niệm của lambda. trong ví dụ trên, nó có thể nhanh hơn một chút vì bạn không phải tra cứu 'toán tử' hoặc' toán tử.attrgetter() '... bạn có đối tượng hàm thực tế rồi! Tuy nhiên, nó hầu như không đáng chú ý như Alex đã nói, nhưng giải pháp 'lambda' không giành được điểm Zen Zen bằng cách dễ đọc hơn. – wescpy
Cảm ơn, Alex và Wesley! – PaulMcG