Python辞書(dict)のすべて:基本操作から応用テクニックまで完全ガイドしたい。

この記事は広告を含みます。

今回は、Pythonの辞書(dictionary、dict型)は、キーと値のペアを扱うデータ構造で、効率的なデータ管理が可能です。本記事では、辞書の基本的な使い方から応用テクニックまでを理解してゆこうと思います。

1. Pythonの辞書(dict)とは?

辞書は「キーと値のペア」で構成されるデータ構造で、リストのような順序に依存せず、キーを使って素早くデータを取得するもの。

1.1 辞書の特徴

  • キーは一意である(重複不可)
  • 値は任意のデータ型を指定可能
  • 検索が高速(ハッシュテーブルを使用)
  • 順序が保持される(Python 3.7以降)

1.2 辞書の基本的な作成方法

my_dict = {}

# キーと値を指定して辞書を作成
my_dict = {'name': 'Kunio', 'age': 41, 'city': 'Osaka'}

2. 辞書の基本操作

2.1 値の取得

print(my_dict['name'])  # Kunio

キーが存在しない場合のエラー回避にはget()を使用。

print(my_dict.get('job', 'Not Found'))  # 'Not Found'

(getいいよね。getの第2引数、重要!!!)

2.2 値の追加・更新

my_dict['job'] = 'Engineer'  # 新しいキーを追加
my_dict['age'] = 51  # 既存のキーの値を更新

2.3 キーの削除

del my_dict['city']  # キーを削除
my_dict.pop('age')  # pop()でも削除可能

2.4 辞書のループ処理

for key, value in my_dict.items():
    print(f'{key}: {value}')

3. 辞書の応用的な使い方

3.1 辞書の内包表記

squares = {x: x**2 for x in range(5)}
print(squares)  # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

ここにも記載しました。かなり使ってます。内包表記

kunio-ud-zatta.hatenablog.com

3.2 defaultdictの活用

from collections import defaultdict

d = defaultdict(int)  # 初期値0の辞書
d['apple'] += 1
d['banana'] += 2
print(d)  # {'apple': 1, 'banana': 2}

3.3 Counterで要素の出現回数をカウント

from collections import Counter
words = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple']
count = Counter(words)
print(count)  # {'apple': 3, 'banana': 2, 'orange': 1}

これ、便利ですよね。

3.4 OrderedDictで順序を保持

from collections import OrderedDict
ordered_dict = OrderedDict()
ordered_dict['apple'] = 1
ordered_dict['banana'] = 2
print(ordered_dict)  # 順序が保持される

4. パフォーマンス最適化

4.1 setdefault() で安全にデータ追加

my_dict.setdefault('job', 'Unknown')  # 'job'が存在しない場合のみ追加

4.2 in を使った高速なキーの存在確認

if 'name' in my_dict:
    print('名前があります')

これ、if文などでよく使いますよね。 ついつい、findとかしなくても良いですもんね。 pythonってホント便利ですね。

ただ、英単語を間違えないようにVSCodeにSpell Ceckerをいれちゃいました。

5. まとめ

Pythonの辞書(dict)は、データの管理や検索、頻度の計算など多くの用途に使えます。基本操作から応用的な使い方までをマスターすることで、効率的なプログラミングが可能になりますね。

やはり、書いていくと、上記にも書きましたが、Spellミスなどのエラーがあったりしますね。。 静的解析、動的解析について便利ツールを覚えてゆかねばですね。