这是一个关于符号的微妙问题。 我想调用具有特定参数的函数,但不必重新定义它。函数中的参数python
例如,min()
与第二个参数的关键功能key = itemgetter(1)
会是什么样子:
min_arg2 = lambda p,q = min(p,q, key = itemgetter(1))
我希望只是把它作为像min(*itemgetter(1))
...
有谁知道这个怎么做?谢谢。
这是一个关于符号的微妙问题。 我想调用具有特定参数的函数,但不必重新定义它。函数中的参数python
例如,min()
与第二个参数的关键功能key = itemgetter(1)
会是什么样子:
min_arg2 = lambda p,q = min(p,q, key = itemgetter(1))
我希望只是把它作为像min(*itemgetter(1))
...
有谁知道这个怎么做?谢谢。
你想用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)
这就是我要找的。谢谢。 – Diego
你在哪里定义vals? –
使用functools(如Duncan's answer)是一个更好的方法,但是你可以使用一个lambda expression,你只是没有得到语法正确:
min_arg2 = lambda p,q: min(p,q, key=itemgetter(1))
谢谢,那个错误wasa错误,虽然functools.partial是我想要的。 – Diego
“但不必重新定义它。”这怎么可能被避免?你想做什么?如果'min()'不代表'__builtins __。min()'人们会恨你。 –