这是一个关于符号的微妙问题。 我想调用具有特定参数的函数,但无需重新定义它。
例如,在第二个参数min()
上具有键函数的key = itemgetter(1)
将如下所示:
min_arg2 = lambda p,q = min(p,q, key = itemgetter(1))
我希望把它称为像min( *itemgetter(1) )
...
有谁知道怎么做?谢谢。
答案 0 :(得分:10)
您想使用functools.partial()
:
min_arg2 = functools.partial(min, key=itemgetter(1))
有关文档,请参阅http://docs.python.org/library/functools.html。
示例:
>>> import functools
>>> from operator import itemgetter
>>> min_arg2 = functools.partial(min, key=itemgetter(1))
>>> min_arg2(vals)
('b', 0)
答案 1 :(得分:2)
使用functools(如在Duncan's answer中)是一种更好的方法,但是你可以使用lambda expression,你只是没有得到正确的语法:
min_arg2 = lambda p,q: min(p,q, key=itemgetter(1))