Chào mọi người.
Mình có google cách phân biệt attrgetter và itemgetter mà không hiểu được. Mong mọi người có thể chỉ giúp là 2 cái khác nhau như thế nào không? vì mình xem ví dụ thì thấy giống nhau (đều có thể dùng lamba thay thế như nhau).
Cảm ơn.
Phân biệt attrgetter và itemgetter
attrgetter = get 1 attribute của 1 object nào đó
itemgetter = get value của 1 object nào đó thông qua hàm __getitem__
ngắn gọn thì attrgetter thường chỉ xài cho 1 class, vì class thì mới có attribute, còn itemgetter xài được cho mọi class có implement của hàm __getitem__
tại sao dùng 2 cái này, thì chủ yếu nó là pythonic mà thôi chứ bạn xài lambda cũng có sao đâu. mình có đọc thấy vài chỗ bảo xài 2 hàm này nó nhanh hơn x2 lần nhưng ko thấy benchmark nên cũng bán nghi lắm OcO
ố search phát ra có ng benchmark nè
https://stackoverflow.com/questions/17243620/operator-itemgetter-or-lambda
3 Likes
Và itemgetter
còn có thể nhận nhiều tham số ứng với chỉ số cần truy cập.
4 Likes