コース: Python:ヒントとテクニック

今すぐコースを受講しましょう

今すぐ登録して、23,500件以上登録されている、業界エキスパート指導のコースを受講しましょう。

ラムダ式でmin()・max()をカスタマイズする

ラムダ式でmin()・max()をカスタマイズする - Pythonのチュートリアル

コース: Python:ヒントとテクニック

ラムダ式でmin()・max()をカスタマイズする

min 関数は、最小値を返し、 max 関数は、最大値を返す。 そんなふうにだけ理解していませんか? もちろん、それはそれで正しいのですが、 もう少し詳しく見ていきましょう。 県名のリストと、 それに対応する人口のリストがあります。 このように、Python では、 数値リテラルの3桁区切りに アンダースコアを使うことができます。 数値リテラルを入力するときに、 アンダースコアを使うと、 間違いがなくて、助かります。 まず県名の最小値、min ですね。 それから県名の最大値、 max を取っています。 それから、population、 人口の最小値、 人口の最大値を取っています。 print 関数で、 4つの値を出力します。 県名の最小値は、 Fukui になりました。 アルファベット順ですね。 県名の最大値は、Toyama です。 T は、他のどの県名よりも 後ろに来ます。 それから populations、 人口の最小値は、 福井県の 786740 です。 最大値は、岐阜県の 2031903 です。 これが min/max の 最も基本的な使い方だと思います。 今度は、 prefs リストと populations リスト、 この2つを zip 関数でまとめて 最小値と最大値を、 min 関数、max 関数で、 それぞれ取ってみましょう。 実行します。 min 関数は、 'Fukui', 786740 を返しました。 max 関数は、 'Toyama', 1066328 を返しました。 ということは、ここでは min 関数、max 関数の評価に 県名のアルファベットが 使われていることがわかります。 しかし、人口で、 最小値、最大値を取りたいと思います。 そこで、ラムダ式を使います。 key=lambda として、 ラムダ式を定義します。 x のインデックスに 1を指定します。 prefs リストと populations リストを、 zip 関数で まとめたので、 x の0が県名になります。 そして、X の1が populations、 人口になります。 このように、ラムダ式を使って、 キーを指定してやることで、 人口で、 min/max を 取得することができます。 実行した結果を見てみましょう。 min 関数の返す値は、 ’Fukui’, 786740…

目次