def snd(pair):
x,y = pair
return y
list_of_tuples = [(1,2), (3,4), (5,0)]
print(min(list_of_tuples, key=snd(list_of_tuples)))
上記の関数は、引数としてペアをとりますが、呼び出すときに引数なしで呼び出されます。 なぜですか?引数なしでパラメータ化された関数が呼び出されます。
def snd(pair):
x,y = pair
return y
list_of_tuples = [(1,2), (3,4), (5,0)]
print(min(list_of_tuples, key=snd(list_of_tuples)))
上記の関数は、引数としてペアをとりますが、呼び出すときに引数なしで呼び出されます。 なぜですか?引数なしでパラメータ化された関数が呼び出されます。
あなたのコードは、snd defintionの後に字下げしただけで、key引数に関数名を使用するだけで、関数が自動的に引数を関数の引数として渡します。 Pythonで
def snd(pair):
x,y = pair
return y
list_of_tuples = [(1,2), (3,4), (5,0)]
print(min(list_of_tuples, key=snd))
多くの機能要素のそれぞれに適用される呼び出し可能(関数)(ここで、各タプルのペア)をとる任意key
引数を有します。
は、と入力してください。min
はそれを行います。 docs on min
から:
2つのオプションのキーワードのみの引数があります。 key引数は、
list.sort()
で使用されるような1引数の順序付け関数を指定します。
キー機能の詳細については、hereを参照してください。