這是一個關於符號的微妙問題。 我想調用具有特定參數的函數,但不必重新定義它。函數中的參數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()'人們會恨你。 –