Pythonでコードを書いていると、importせずに当たり前のように使えるprint()やlen()。これらは「組み込み関数(Built-in Functions)」と呼ばれ、Pythonがあらかじめ用意してくれている超便利な道具たちです。実はこの組み込み関数を知っているか知らないかで、コードの可読性も生産性も大きく変わってきます。
「forループでぐるぐる回して書いてたけど、たった1行で済んだのか…!」という瞬間に出会うたび、Pythonの奥深さを実感しますよね。今回は組み込み関数を体系的に整理しながら、学習をぐっと加速させてくれるおすすめ書籍とアイテムを紹介していきます📚
組み込み関数とは、Pythonがあらかじめ用意している関数のことで、import文を使わなくてもどこからでも呼び出すことができます。最も身近な例がprint()。引数に渡したオブジェクトを画面に表示してくれるあの関数です。
Pythonには他にも便利な組み込み関数がたくさん用意されていて、使いこなせるようになると以下のようなベネフィットがあります✨
isinstance(x, str)のように書くと、第1引数のオブジェクトが第2引数で指定したクラスのインスタンスかどうかをTrue/Falseで返してくれます。type()と似ていますが、サブクラスのオブジェクトでもTrueを返すのが大きな違いです。
例えばstrクラスはobjectクラスを継承しているので、isinstance(x, object)はxが文字列でもTrueになります。一方type(x) is objectだとFalse。継承関係まで含めて判定したいならisinstanceを使いましょう。
第2引数にタプルで複数のクラスを指定することもでき、isinstance(x, (int, float))のように書けば「intまたはfloatのときTrue」となります。
hasattrは「has + attr(attribute:属性)」の略。指定した属性(インスタンス変数やメソッド)を持っているかどうかを判定しTrue/Falseを返します。
例えばadd_friendsメソッドを持つUserクラスのオブジェクトuserに対してhasattr(user, "add_friends")と書けばTrue。これは"add_friends" in dir(user)と書くのと同じ意味になります。
callable(obj)は引数が関数やクラスのように「呼び出し可能」なオブジェクトかを判定します。文字列や数値はFalse、関数やクラスはTrue。メタプログラミング(プログラムが別のプログラムを参照・生成する処理)でコード解析時によく使われます。
リストや集合などの繰り返し可能オブジェクトに対して真偽を判定する関数です。all()はすべての要素がTrueのときにTrueを返し、any()は1つでもTrueがあればTrueを返します。データの一括チェックに大活躍します。
map(func, iterable)は各要素に同じ処理を施し、filter(func, iterable)は条件を満たす要素だけを抽出します。リスト内包表記と並んでPythonらしいコードを書くための必須ツールです。
enumerateはforループでインデックスと要素を同時に取得、zipは複数のリストの要素をまとめて取り出し、rangeは連番の整数を生成します。これらはforループの相棒として覚えておくと便利です。
reversedは逆順、sortedは昇順/降順に並び替えます。reversedはイテレータを返すのでリストとして扱いたい場合はlist()で変換が必要です。リストのsortメソッド(破壊的)との違いも押さえておきましょう。
数値計算でよく使う組み込み関数も押さえておきたいところです。
round(0.5)は1ではなく0になる「銀行家の丸め」なので要注意⚠️そしてint、float、str、list、set、dict、tupleといった型変換関数もすべて組み込み関数。int("123")のように書けば文字列を整数に変換できます。
動画や記事で概要を掴んだら、次は手を動かしながら体系的に学ぶフェーズです。ここでは「組み込み関数を含むPythonの基礎力をしっかり固められる」厳選アイテムを紹介します。
Pythonの言語仕様を深く解説した名著。組み込み関数や標準ライブラリの使い分けまで網羅されており、「なぜこの関数を使うのか」が腹落ちする1冊です。中級者へのステップアップに最適。
初心者にも大人気のロングセラー📘inputやprint、型変換関数を使った実践的なスクリプトが満載で、組み込み関数の「使いどころ」が自然と身につきます。日常業務の自動化にもそのまま使えます。
「動くコード」から「美しく速いコード」へ進化するための定番書。map/filterとリスト内包表記の使い分け、isinstanceを使った型チェックの注意点など、実務で差がつくテクニックがギッシリ詰まっています✨
Python公式ドキュメントの書籍版。組み込み関数の正確な仕様を確認したいときに手元に置いておきたい1冊です。薄くて持ち運びやすいのもポイント。リファレンスとして長く使えます。
長時間コーディングするなら、キーボードへの投資は最高のリターンを生みます。静電容量無接点方式の極上の打鍵感で、コードを書くこと自体が楽しくなる魔法のキーボード。学習のモチベーションも自然と上がります🚀
継承関係まで考慮したいならisinstance、厳密に「そのクラスそのもの」かを判定したいならtype(x) is Classを使います。一般的なコードではisinstanceが推奨されることが多いです。
バグではありません。Python 3のroundは「銀行家の丸め(偶数への丸め)」を採用しており、0.5は最も近い偶数0に丸められます。厳密な四捨五入が必要ならdecimalモジュールを使いましょう。
全部暗記する必要はありません🙆♀️ よく使う20〜30個を「こういう関数があったな」と引き出せる程度に把握しておけば十分です。あとは必要なときにドキュメントを引けばOK。
シンプルな処理ならリスト内包表記の方が読みやすいことが多いです。一方で既存の関数をそのまま渡したい場合や、ジェネレータとして遅延評価したい場合はmap/filterが便利。状況に応じて使い分けましょう。
プログラミングが初めてなら「退屈なことはPythonにやらせよう」が圧倒的におすすめです。具体的な題材を通してinputやprint、型変換関数の使い方が自然と身につきます。
今回はisinstance、hasattr、callable、all/anyといった判定系から、map/filter/enumerate/zip/rangeなどの繰り返し系、max/min/sum/abs/round/len/id/inputといったユーティリティ系まで、Pythonの主要な組み込み関数を一気に整理しました。
組み込み関数を使いこなせるようになると、コードは確実に短く、読みやすく、速くなります。今日紹介した書籍とアイテムを相棒に、ぜひ手を動かしながら一つひとつ体に染み込ませていってください。明日のあなたのコードは、今日のあなたが想像する以上にエレガントになっているはずです✨