2017-01-19 4 views
-7

key=func部分の意味はmax(a,b,c,key=func)ここでhttps://docs.python.org/2/library/functions.html#minこの `key = func`の部分は、Pythonの` max(a、b、c、key = func) `の意味ですか?

私はこの機能がPythonでどのように機能するのか知っています。しかし、通常、私は単にそれが単にとして使用されて参照してください z = max(a, b, c) しかし、私はこの部分を見つけたと私はそれを理解していません。この機能のいくつかの付加的なオプション機能なのでしょうか?

+8

** 'key'引数が何を示しています。 –

+1

@DanielRoseman「オプションのkey引数は、list.sort()で使用されるような1つの引数の順序付け関数を指定しています。それだけでは大したことではないかもしれませんが、正しい方向であなたを指しています( 'key'パラメータの詳細な説明を提供する' list.sort() 'のドキュメントを見てください)。 – Tagc

+0

私はTagcに同意します。多くのユーザーは、正確な例が見られるまでその点を見ません。 –

答えて

4

要素間の比較を置き換える基準を定義することができます。例えば

>>>l = ["hhfhfhh","xx","123455676883"] 
>>>max(l, key=len) 
'123455676883' 

が、それがなければ"123455676883"

あるリストの中で最も長い文字列を返し、それは文字列の比較によると、最高ランクの文字列だから、それは"xx"を返します。あなたがへリンク**正確な段落

>>>l = ["hhfhfhh","xx","123455676883"] 
>>>max(l) 
'xx' 
+0

ありがとうございました。 )それは私には分かりやすい。 したがって、基本的に 'func'の代わりに、ドット表記のリストの要素に適用できる任意の関数を使用できます(これはStringクラスやその他のクラスに含まれています)。あれは正しいですか? –

+0

はい。そのとおりです。また、微調整が必​​要な場合は、 'lambda'を使って独自の関数を定義することができます。例:len-3は次のようになります。 'lambda:len(s)-3' –

関連する問題