我经常写这样的代码:
sorted(some_dict.items(), key=lambda x: x[1])
sorted(list_of_dicts, key=lambda x: x['age'])
map(lambda x: x.name, rows)
我想写的是:
sorted(some_dict.items(), key=idx_f(1))
sorted(list_of_dicts, key=idx_f('name'))
map(attr_f('name'), rows)
使用:
def attr_f(field):
return lambda x: getattr(x, field)
def idx_f(field):
return lambda x: x[field]
python中是否有像idx\u f和attr\u f这样的函子创建者,它们在使用时是否比lambda更清晰?你知道吗
operator
模块有^{这些函数还接受多个参数,此时它们将返回一个包含每个参数值的元组:
attrgetter()
函数还接受虚线名称,在这里可以访问属性的属性:相关问题 更多 >
编程相关推荐