Pythonには、インストールやインポートをすることなく、すぐに使える便利な関数が多数用意されています。これらは「組み込み関数(Built-in Functions)」と呼ばれ、Pythonの学習からプロの開発まで、あらゆる場面で活躍します。この記事では、特によく使われる組み込み関数をいくつかピックアップし、その使い方と役割を解説します。
型や属性をチェックする関数
-
isinstance(object, classinfo)オブジェクトが特定のクラスのインスタンスであるかどうかをチェックします。条件分岐でデータの型を確認したいときに便利です。x = 10 if isinstance(x, int): print("xは整数です。") -
hasattr(object, name)オブジェクトが特定の名前の属性やメソッドを持っているかをチェックします。コードの柔軟性を高めるために使われます。class Car: def start_engine(self): pass my_car = Car() if hasattr(my_car, 'start_engine'): print("このオブジェクトはエンジンを始動できます。") -
callable(object)オブジェクトが呼び出し可能(関数やメソッドなど)かどうかをチェックします。def my_func(): pass is_callable = callable(my_func) print(is_callable) # True
真偽値を返す便利な関数
-
all(iterable)イテラブル(リストやタプルなど)のすべての要素がTrueである場合にTrueを返します。一つでもFalseがあればFalseを返します。 -
any(iterable)イテラブルのいずれかの要素がTrueである場合にTrueを返します。すべてFalseである場合にFalseを返します。numbers = [1, 2, 3, 0] print(all(numbers)) # False (0はFalseと見なされる) ages = [18, 25, 30] print(any(age > 20 for age in ages)) # True
イテラブルを操作する関数
-
map(function, iterable, ...)イテラブルの各要素に対して、指定した関数を適用し、結果を新しいイテレータとして返します。 -
filter(function, iterable)イテラブルの要素のうち、指定した関数がTrueを返す要素だけを抽出し、新しいイテレータとして返します。numbers = [1, 2, 3, 4, 5] # 各要素を2倍にする doubled = list(map(lambda x: x * 2, numbers)) print(doubled) # [2, 4, 6, 8, 10] # 偶数だけを抽出する evens = list(filter(lambda x: x % 2 == 0, numbers)) print(evens) # [2, 4] -
enumerate(iterable, start=0)イテラブルの要素とそのインデックスをペアにして返します。 -
zip(iterable1, iterable2, ...)複数のイテラブルの要素を、対応するインデックスごとにまとめてペアにして返します。names = ["Alice", "Bob"] scores = [85, 92] for index, (name, score) in enumerate(zip(names, scores)): print(f"{index+1}. {name}: {score}点") -
range(start, stop, step)指定した範囲の連続した整数を生成します。 -
reversed(sequence)シーケンス(リストやタプルなど)の要素を逆順にしたイテレータを返します。 -
sorted(iterable, key=None, reverse=False)イテラブルの要素を並べ替えた新しいリストを返します。元のイテラブルは変更されません。unsorted_list = [3, 1, 4, 1, 5, 9] sorted_list = sorted(unsorted_list) print(sorted_list) # [1, 1, 3, 4, 5, 9]
まとめ
これらの組み込み関数は、Pythonのコードをより簡潔に、そして効率的に書くための重要なツールです。forループで手動で行っていた処理の多くを、これらの関数で置き換えることができ、コードの可読性も向上します。
ぜひ、これらの関数を積極的に活用して、より洗練されたPythonコードを書いていきましょう。