前幾天在給個list作排序的時候,隱隱約約想起來有個語法糖能夠替代lambda函數,用來獲取list中dict的key,做爲排序的key。python
這個語法糖平時用得少,怎麼都想不起來。今天查看python標準庫operator時,終於把這兩個方法找到了,作個筆記。函數
由於就是一個語法糖,太簡單了,不必作太多解釋說明,直接貼代碼吧。spa
from operator import itemgetter, attrgetter __author__ = 'blackmatrix' get_name = lambda user: user['name'] get_address = lambda user: getattr(user, 'address') class User: def __init__(self, name, address): self.name = name self.address = address laowang = {'name': '老王', 'address': '隔壁'} laoli = User('老李', '樓下') if __name__ == '__main__': # itemgetter('name') 和 get_name 做用是相同的 # 都是接受一個對象,獲取對象key爲name的值 # 主要用來替代只是爲了獲取value的lambda函數 print(itemgetter('name')(laowang)) print(get_name(laowang)) # 一樣的,attrgetter('address')也是等同於get_address # 用來替代只爲了獲取attr的lambda函數 print(attrgetter('address')(laoli)) print(get_address(laoli))