Pythonの基礎の一部について

最終更新日: 2026年8月7日

どのプログラミング言語にも言えることですが、言語にはそれぞれ基礎となる部分がありそれらを上手く組み合わせることで機械をコントロールできるようになります。Pythonに焦点を絞り、基礎の一部である辞書型とユーザー定義関数について記述します。これらは頻繁に利用することになる機能の一部であり、理解するほどに使いやすくなります。

辞書型について

辞書型は1要素を「キー:値」の形で複数保存できる特徴を持っています。以前の辞書型は順番についての保証がなかったためどの順番で参照されるかわからなかったですが、最新のPython3を使うことで順番について保証されるようになっています。これにより辞書型に追加する順番をルール付けることによって、ルールに準じた順番を前提としたプログラム記述をすることできちんと動作するようになりました。キーを明確に指定して使う本来の使い方であれば順番の保証は必要ありませんが、順番の保証により事前ルール前提で要素を列挙する使い方等もできるようになりました。辞書型の使い方の幅が広がったと言えます。

辞書型の作成・変更・追加

Pythonの特徴として人間の直感に近い感覚で操作できることが挙げられます。直感で思いつくことから離れれば離れるほど人間は扱いづらく感じ、習得するためのコストも増大していきます。その点、Pythonは直感に近い感覚で扱える場面が多いため人間にとって扱いやすい言語と言えます。辞書型の作成はその恩恵を大きく受けているため簡単に基本操作を行うことができます。人間の「こうやればこうなりそう」という感覚で扱うことができる点がハードルを低くしています。

辞書型の作成は簡単です。方法は大きく分けて2つあり、初期値を入れる方法と入れない方法です。初期値を入れる場合は「変数 = {キー:値}」で作成可能です。カンマで区切ることにより複数の要素を一度に設定することができます。Pythonの辞書型の扱いやすい点として空の辞書型も同じ感覚で作成できる点が挙げられます。「変数 = {}」で作成が可能です。使い方の一例としては、for文で回している間に追加していくための辞書型を形だけ先に作り、どんどん追加していく時等に活用することができます。空の辞書型を作成するときは括弧の中身を何も用意しないだけなので直感的に理解しやすい方法と言えます。

辞書型の値を変更するのもとても簡単なのがPythonの良い点です。「変数[キー] = 値」で値を変更することができます。通常の変数の扱い方とほとんど変わりがなく、キーを指定するだけで済むため分かりやすいことがメリットです。

加えて追加に関しても、辞書型に追加する場合でも特別な書き方がいらないため非常にわかりやすくなっています。変更する場合と書き方は全く同じで「変数[キー] = 値」となります。異なる点は事前に作成していないキーを指定することです。特別な書き方が必要だと習得コストが必要になり手が止まります。また困惑する原因になるため全体的な効率が落ちる要因にもなります。そのためシンプルな記述で追加できるPythonはメリットが多いと言えます。注意点としては状況によって結果が変わるだけで、変更と追加は全く同じ書き方をするため混同しないように気を付ける必要があります。明確に、今行っていることを理解していないとメンテナンス等の時に誤る可能性があります。必要に応じてコメント挿入等を適宜行う必要があります。

ユーザー定義関数

ユーザー定義関数はよく使う機能をまとめておける便利な機能です。便利なだけでなくプログラム内もすっきりさせることができます。似た内容を複数記述せずに一つのユーザー定義関数に集約させる書き方を心がけることでメンテナンス時に修正箇所の量と特定のしやすさの両方を兼ねることができます。

ユーザー定義関数の定義の仕方と呼び出し方

Pythonの場合ユーザー定義関数もとてもシンプルです。関数を定義する場合はdefを使用します。引数を必要としない場合は「def 関数名():」で開始し、インデントを落として関数内処理を記述することで作成することができます。呼び出す場合も定義時と似ているため直感で理解しやすいことが特徴です。「関数名()」で使用することができます。引数が必要な場合は、それぞれ()に引数を指定することで使用することができます。関数内処理内でreturnを使用することで戻り値を設定することも可能です。

Pythonにオーバーロード機能はない

PythonはJavaでのオーバーロード機能が用意されていません。ですがコンストラクタとデフォルト値を代用することで疑似的に行うことは可能です。つまりデフォルト値を用いても実現が難しい場合は記述の仕方を見直す必要があります。

Python辞書型 主要メソッド一覧

メソッド / 操作 書き方 説明 戻り値
作成(初期値あり) d = {'key': 'val'} キーと値を指定して辞書を作成 dict
変更 / 追加 d[key] = value キーが存在すれば更新・なければ追加(同じ書き方) なし
keys() d.keys() すべてのキーを取得 dict_keys
values() d.values() すべての値を取得 dict_values
items() d.items() キーと値のペアをタプルで取得(for文と組み合わせて使う) dict_items
get() d.get(key, default) キーが存在しない場合にエラーでなくデフォルト値を返す 値 or default
pop() d.pop(key) 指定キーの要素を削除して値を返す 削除した値

よくある質問

Q. Pythonの辞書型とリスト型はどう使い分けますか?
A. リストは順序が重要で「番号(インデックス)」でデータにアクセスする場合に使います(例:連番データ・順序付きコレクション)。辞書型は「名前(キー)」でデータにアクセスする場合に使います(例:ユーザー情報の{name: ‘Taro’, age: 30})。「何番目」ではなく「何という名前か」で管理したいデータには辞書型が適しています。Python3.7以降は辞書型も挿入順が保証されるため、順序が重要な場面でも辞書型が使えるケースが増えました。
Q. ユーザー定義関数と組み込み関数の違いは何ですか?
A. 組み込み関数はPythonに最初から用意されている関数です(print()・len()・range()・type()等)。importなしで使えます。ユーザー定義関数はプログラマが「def」キーワードを使って独自に作成する関数です。繰り返し使う処理をまとめて名前をつけることで、コードの再利用性と可読性が上がります。標準ライブラリやサードパーティライブラリの関数(np.array()等)はimportが必要な組み込み関数の拡張です。
Q. Pythonの辞書型のキーに使えるデータ型は何ですか?
A. ハッシュ可能(イミュータブル)な型であれば辞書型のキーとして使用できます。代表的なものは文字列(str)・整数(int)・浮動小数点数(float)・タプル(tuple)です。一方でリスト(list)・辞書(dict)・集合(set)はミュータブル(変更可能)なためキーとして使えません。実際の開発では文字列をキーとして使うケースが圧倒的に多く、可読性・デバッグのしやすさの観点からも文字列キーが推奨されます。
Q. Pythonのオーバーロード非対応の回避策を教えてください
A. Pythonでオーバーロードを疑似的に実現する主な方法は3つあります。①デフォルト引数:def greet(name, greeting=’こんにちは’) のようにデフォルト値を設定する。②可変長引数:def func(*args, **kwargs) で任意の数・種類の引数を受け取る。③型チェック:isinstance()で引数の型を確認し処理を分岐する。Python 3.11以降では「typing.overload」デコレータも使用可能です。Javaのオーバーロードほど明示的ではありませんが、これらの組み合わせで同等の柔軟性を実現できます。

まとめ

  • Python辞書型は「キー:値」ペアで複数要素を管理するデータ構造。Python3.7以降は挿入順も保証され、使い方の幅が広がった
  • 辞書型の作成・変更・追加はすべて直感的な記述で行える。変更(既存キー)と追加(新規キー)は同じ書き方「変数[キー] = 値」で行うため、意図を明確にするコメントが重要
  • ユーザー定義関数はdefキーワードで定義し、繰り返し使う処理をまとめることでコードの可読性・保守性・再利用性が向上する
  • Pythonにはオーバーロード機能がないが、デフォルト引数・可変長引数・isinstance()による型チェックを組み合わせることで疑似的に実現できる
  • Pythonの基礎をしっかり理解することで、AIや機械学習・データ分析などの高度な応用につながる。辞書型とユーザー定義関数はその土台となる重要な概念

▼ アクロビジョンについて

👔

一緒に働きましょう

一人ひとりのキャリアに向き合い、
活躍できる現場をご紹介します。

採用サイトを見る →
💻

システム開発のご依頼・ご相談

コンサルティングから運用保守まで、
ワンストップで対応します。

まずはお気軽にご相談ください →