あまり使われないけれど便利なPython組み込み関数まとめ
Pythonをブラウザで実行しながら実践的に学ぶ
Pythonの基礎からソフトウェアアーキテクチャ,アルゴリズムなどの応用的な内容まで幅広く学べます。
ブラウザ上で直接Pythonコードを試すことができ、実践的なスキルを身につけることが可能です。
Pythonを学び始めたとき、最初に出会うのは print()
や len()
といった基本的な組み込み関数です。
これらは誰もが自然に使いこなせるようになり、プログラミングの第一歩を支えてくれます。
しかし、実はPythonにはもっと多くの組み込み関数が存在します。
数えてみると70以上あり、その中には「知らなくてもなんとかなるけれど、知っていればもっと楽に書ける」という便利なものがたくさん隠れています。
この記事では、普段あまり注目されないけれど実は役立つ組み込み関数を、初心者でも理解できるように丁寧に解説していきます。
単に関数の説明をするだけでなく、初心者がやりがちな「冗長なコード」と「組み込み関数を使ったシンプルなコード」を比較しながら見ていきます。
「昔こんなコードを書いていたけど、こんな便利な関数があったのか!」と驚きながら学べるはずです。
条件をまとめて判定できる any()
と all()
¶
プログラムを書いていると、「リストの中に1つでも有効な値があるか?」や「すべての要素が条件を満たしているか?」といった判定が必要になることがあります。
初心者のうちは、ついforループを使って判定してしまいがちです。例えば次のようなコードです。
numbers = [0, 0, 0, 1]
found = False
for n in numbers:
if n:
found = True
break
print(found) # True
確かにこれでも動作しますが、書くのも読むのも少し面倒です。ここで役立つのが any()
です。
numbers = [0, 0, 0, 1]
print(any(numbers)) # True
たった一行で同じ処理ができました。さらに「すべてが有効か」を調べるときには all()
を使います。
numbers = [1, 1, 1]
print(all(numbers)) # True
numbers = [1, 0, 1]
print(all(numbers)) # False
自分でループを書くよりも、圧倒的に読みやすくなります。特にデータの検証やフォーム入力のチェックなどで大活躍します。
インデックス付きでループできる enumerate()
¶
リストの要素を順番に処理するとき、「インデックス番号も欲しい」と思うことがあります。
初心者がよくやるのは次のような書き方です。
fruits = ["apple", "banana", "cherry"]
for i in range(len(fruits)):
print(i + 1, fruits[i])
これでも結果は出ますが、range(len(...))
は分かりづらいし、少し冗長です。そんなときは enumerate()
を使いましょう。
fruits = ["apple", "banana", "cherry"]
for i, fruit in enumerate(fruits, start=1):
print(i, fruit)
番号と要素を同時に取り出すという意図が一目で分かります。 リストだけでなく、タプルや文字列でも同じように使えます。
複数のリストを同時に処理できる zip()
¶
複数のリストを横に並べて処理したいという場面は意外と多いです。 例えば、名前と点数を結びつけたいとき。
初心者は以下のように書きがちです。
names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]
for i in range(len(names)):
print(names[i], scores[i])
確かに動きますが、書き方がごちゃごちゃしています。zip()
を使えばとてもシンプルです。
names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]
for name, score in zip(names, scores):
print(f"{name}: {score}")
結果は同じでも、可読性が大幅に向上します。 さらに、3つ以上のリストでも同時に処理できます。
リストを逆順に扱う reversed()
¶
「リストを逆順にしたい」とき、多くの人がこう書きます。
nums = [1, 2, 3, 4]
print(nums[::-1]) # [4, 3, 2, 1]
これはスライス構文を使った方法ですが、初心者には少し直感的ではありません。
そこで reversed()
を使うと分かりやすくなります。
nums = [1, 2, 3, 4]
print(list(reversed(nums))) # [4, 3, 2, 1]
「逆順にする」という意図が明確で、コードを読む人に優しい表現です。
商と余りを一度に取得できる divmod()
¶
整数を割り算して「商」と「余り」を両方欲しいとき、普通は //
と %
を別々に書きます。
a, b = 17, 5
print(a // b) # 3
print(a % b) # 2
これでも構いませんが、2回も計算するのは冗長です。そんなときは divmod()
が便利です。
print(divmod(17, 5)) # (3, 2)
返り値は (商, 余り)
のタプルなので、次のように分割して受け取ることもできます。
q, r = divmod(17, 5)
print(q, r) # 3 2
計算が一度で済み、コードもシンプルになります。
小数点を扱うなら欠かせない round()
¶
金額や数値を扱うとき、小数点を丸めたい場面はよくあります。 初心者のうちは「掛け算して整数にして、割って戻して…」なんて面倒な処理を書いてしまうかもしれません。
でもPythonには round()
があります。以下のように記述します。
print(round(3.14159)) # 3
print(round(3.14159, 2)) # 3.14
小数点以下の桁数を指定できるので、表示や計算の整形に非常に便利です。
文字とコードを変換する ord()
と chr()
¶
文字を数値(文字コード)に変換したり、その逆を行ったりすることもできます。
print(ord("A")) # 65
print(chr(65)) # "A"
これを使うと、アルファベットを一文字ずつシフトして暗号化したり、コードを並べ替えたりといった処理が可能です。
普段は意識しないかもしれませんが、知っておくと便利です。
変数を動的に扱える globals()
と locals()
¶
少し高度ですが、プログラムの中で現在使われている変数を辞書として取得できる関数があります。
それが globals()
と locals()
です。
x = 10
print(globals()["x"]) # 10
例えば文字列で変数名を扱いたいときや、デバッグ時に変数をまとめて確認したいときに役立ちます。 初心者が日常的に使うことは少ないですが、知識として知っておくと視野が広がります。
一覧表で整理してみよう¶
ここまで紹介した関数を表で整理すると次のようになります。
関数名 | 説明 | 使用例 | 出力例 |
---|---|---|---|
any() | 1つでもTrueがあればTrue | any([0, 1, 0]) | True |
all() | すべてTrueならTrue | all([1, 1, 1]) | True |
enumerate() | インデックス付きループ | list(enumerate(["a","b"],1)) | [(1,"a"),(2,"b")] |
zip() | 複数リストをまとめる | list(zip([1,2],[3,4])) | [(1,3),(2,4)] |
reversed() | 逆順に処理 | list(reversed([1,2,3])) | [3,2,1] |
divmod() | 商と余りを同時に返す | divmod(17, 5) | (3, 2) |
round() | 数値を丸める | round(3.14159, 2) | 3.14 |
ord() / chr() | 文字と文字コードを相互変換 | ord("A"), chr(65) | 65, "A" |
globals() | グローバル変数を辞書で取得 | globals()["x"] | 10 |
locals() | ローカル変数を辞書で取得 | (関数内で利用) | 変数に応じる |
組み込み関数は便利でさまざまなものがあります!
こちらの記事でも詳しく解説しています。 👉Python組み込み関数とは?初心者でもわかる徹底解説
まとめ¶
今回は、初心者が見落としがちな便利な組み込み関数を紹介しました。
最初のうちは「自分でループを書けばいい」と思いがちですが、Pythonにはそれを一行で済ませる関数が数多く存在します。any()
や all()
で条件判定をシンプルに書けたり、enumerate()
や zip()
でループ処理をきれいにできたりすると、コード全体の見通しが良くなります。
また、divmod()
のように一度で商と余りを取れる関数や、round()
のように数値処理を整形できる関数は、実務的な場面で思った以上に役立ちます。
Pythonの良さは、こうした「ちょっとした便利機能」が標準でそろっていることにあります。ぜひこの記事で知った関数を試してみてください。 書いたコードが驚くほどシンプルになり、プログラミングがもっと楽しくなるはずです。
ここまで読んでくださり、ありがとうございました!