【发布时间】:2015-06-21 13:23:14
【问题描述】:
我经常写这样的代码:
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_f 和 attr_f 这样的仿函数创建器,它们在使用时是否比 lambda 更清晰?
【问题讨论】:
标签: python python-3.x functor