MENU

Pythonの辞書の使い方とリストとの使い分けを初心者向けに解説

※写真はイメージです。実物とは異なる場合があります。

  • URLをコピーしました!

Pythonを学び始めた方が、最初につまずきやすいのが「データのまとめ方」ではないでしょうか。変数に一つの値を入れるだけでなく、たくさんのデータをひとまとめにして管理したいとき、Pythonでは「コレクション」という仕組みを使います。

その中でも特によく使われるのが「リスト」と「辞書」です。どちらも複数のデータをまとめて管理できるため、「どっちを使えばいいの?」と迷ってしまうこともあるはずです。

この記事では、Pythonの辞書(dict)の基本的な使い方と、リスト(list)との決定的な違い、そしてどのような場面でどちらを選択すべきかという使い分けの基準について、詳しく解説します。

目次

Pythonの「コレクション」とは?

まず前提として、リストや辞書などのことをPythonでは「コレクション」と呼びます。

日常生活で例えるなら、コレクションは「整理箱」のようなものです。ボタンや切手、写真など、バラバラになりやすいものを種類や用途に合わせて適切な収納場所に分けて整理するように、Pythonでも扱うデータの種類や、後でどうやって取り出したいかに合わせて、最適なコレクション型を選んで使います。

辞書(dict)の基本と使い方

辞書型(dict)は、その名の通り「国語辞典」のような構造を持つデータ形式です。辞典では「単語(見出し語)」を引くと、その「意味」が書いてありますよね。

Pythonの辞書も同じで、「キー(Key)」と「値(Value)」というペアをセットにしてデータを管理します。

辞書の書き方

辞書は波括弧 `{ }` を使い、キーと値をコロン `:` で区切って記述します。

例えば、「果物とその価格」を管理したい場合は以下のようになります。

  • キー:果物の名前(tangerine, banana, orangeなど)
  • 値:価格(100, 200, 300など)

このように、関連する情報をペアで管理し、特定のキーを指定して素早く値を検索したい場合に最適です。

辞書の主な操作

辞書では、以下のような操作が頻繁に行われます。

  • 値の取得: キーを指定することで、対応する値をすぐに取り出すことができます。
  • 要素の追加: 新しいキーと値をセットにして辞書に加えます。
  • 要素の削除: 不要になったキーを削除します。

辞書の最大の特徴は、インデックス(番号)ではなく「キー」を使ってデータにアクセスすることです。これにより、データが大量にあっても、目的の情報を効率的に探し出すことが可能です。

リスト(list)の基本と使い方

一方、リスト型(list)は、データの「列」を保持するための構造です。

リストの書き方

リストは角括弧 `[ ]` を使い、要素をカンマで区切って記述します。例えば、好きな食べ物のリストを作るなら `["カレー", "ラーメン", "寿司"]` のようになります。

リストの主な操作

リストは「順序付けされた要素の集合」であるため、以下のような操作が得意です。

  • インデックスによるアクセス: 「0番目の要素」「1番目の要素」というように、番号(インデックス)を使ってデータを取り出します。
  • スライス: 指定した範囲の要素をまとめて取り出します。
  • 要素の追加(appendなど): リストの末尾に新しい要素を付け加えます。
  • 要素の削除・変更: 特定の番号のデータを書き換えたり、消したりします。

リストは、買い物リストやタスクリストのように、順番が重要で、後から内容が変化する可能性のある項目を管理するのに向いています。

辞書とリストの決定的な違いと使い分け

ここからは、最も重要な「どう使い分けるか」という点について深掘りします。

根本的な違いは「アクセス方法」

リストと辞書の最大の違いは、データを取り出す時の「指定方法」にあります。

  • リストは「順番(番号)」でアクセスする

「何番目にあるか」が重要です。時系列データや、番号付きの要素を扱う場合に適しています。

  • 辞書は「名前(キー)」でアクセスする

「何という名前のデータか」が重要です。単語と意味、名前と年齢など、2つの情報を対応付けて管理し、特定の名前で検索したい場合に適しています。

使い分けの判断基準

どちらを使うべきか迷ったときは、以下の基準で考えてみてください。

リストを使うべきケース

  • データの順番に意味があるとき(例:ランキング、時系列のログ、待ち行列)
  • 単に同じ種類のデータを並べて保持したいとき(例:ユーザー名のリスト、商品名の集まり)
  • 要素の追加や削除を頻繁に行い、単純に管理したいとき

辞書を使うべきケース

  • データに「ラベル(名前)」を付けたいとき(例:設定値、プロフィール情報)
  • 大量のデータの中から、特定のキーワードで高速に検索したいとき
  • 「AならばB」という対応関係を管理したいとき(例:商品IDと商品価格の紐付け)

パフォーマンス面での視点

効率の面で見ると、辞書はキーの重複がないため、リストやタプルと比較して、特定のデータを探し出すスピードが非常に効率的である場合があります。大量のデータから一つを探すという操作が多い場合は、迷わず辞書を選択しましょう。

応用:リストと辞書の組み合わせ

実際の開発では、リストか辞書のどちらか一方だけを使うのではなく、これらを組み合わせて「複雑なデータ構造」を作ることがよくあります。

例えば、「クラス名簿」を管理する場合を考えてみましょう。 一人の生徒の情報(名前、点数など)は「辞書」で管理するのが自然です。そして、その「生徒の辞書」をたくさん集めて、クラス全体として「リスト」に格納します。

このように「辞書のリスト」という構造にすることで、以下のような柔軟な管理が可能になります。

  1. リストを使うことで、出席番号順に並べたり、人数を数えたりできる。
  2. 個別の辞書を使うことで、「名前」や「点数」といったラベルで個人の情報を正確に取り出せる。

また、Web APIなどでよく使われるJSON形式のデータも、基本的にはこの「辞書とリストの組み合わせ」で構成されています。

まとめ

Pythonのリストと辞書は、どちらも非常に便利ですが、役割が明確に異なります。

  • リストは「順序」を重視し、インデックスで管理する。
  • 辞書は「対応関係」を重視し、キーで管理する。

まずは「番号で管理したいか、名前で管理したいか」という視点で選んでみてください。慣れてくると、これらを組み合わせることで、より複雑で実用的なプログラムが書けるようになるはずです。

データ構造を適切に選ぶことは、コードの読みやすさ(可読性)だけでなく、動作速度(パフォーマンス)にも大きく影響します。ぜひ、状況に合わせて最適なコレクションを使い分けてみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次