備忘録

【Python】辞書(dict)の使い方

前提

Python: 3.12

初期化

d = {'aaa': 1, 'bbb': 2}

キーが存在するか確認する

d = {'aaa': 1, 'bbb': 2}
if 'aaa' in d.keys():
    処理

値を取得する

d = {'aaa': 1, 'bbb': 2}
print(d['aaa'])

上記の方法で値を取得する際、キーが存在しなければKeyErrorとなるため、キーが存在するか確認してから値を取得する必要がある。

値を取得する別の方法としてget(key[, default])を使用する方法もある。 get(key[, default])を使用した場合は、キーが存在しない場合のデフォルト値を指定できる。 デフォルト値を指定しなかった場合はNoneが返る。

d = {'aaa': 1, 'bbb': 2}
print(d.get('ccc'))    # デフォルト値を指定しない
print(d.get('ccc', 3)) # デフォルト値として3を指定

要素数を取得する

d = {'aaa': 1, 'bbb': 2}
len(d)

for

辞書のキーに対して順番に処理を行う

d = {'aaa': 1, 'bbb': 2}
for k in d.keys():
    print(k)

実行結果

aaa
bbb

辞書の値に対して順番に処理を行う

d = {'aaa': 1, 'bbb': 2}
for v in d.values():
    print(v)

実行結果

1
2

辞書のキー、値に対して順番に処理を行う

d = {'aaa': 1, 'bbb': 2}
for k, v in d.items():
    print(k, v)

実行結果

aaa 1
bbb 2

関連記事

  • 【Python】for文の使い方
    前提 Python: 3.12 基本 for i in range(5): print(i) else: 処理 for i in range(-5, 2): print(i) for i in range(5): if i == 2: continue if i == 3: break print(i) 参考 8.3. for 文 — 8. 複合文 (compound statement) — Python 3.12.3 ドキュメント else else節がある場合、ルー
  • 【Python】if文による条件分岐
    前提 Python: 3.12 基本 if 条件式: 処理 elif 条件式: 処理 else: 処理 if not 条件式: 処理 参考 8.1. if 文 — 8. 複合文 (compound statement) — Python 3.12.3 ドキュメント 変数がNoneか判定する Noneかど
  • 【Jinja2】PythonのテンプレートエンジンJinja2で継承を使う
    前提 Python: 3.12 Jinja2: 3.1.3 継承 継承するとベースとなるテンプレート(base.html)の{% block %} {% endblock %}タグで囲っている箇所だけ変更できる。 継承するテンプ
  • 【Jinja2】テンプレートにパラメータを渡す
    前提 Python: 3.12 Jinja2: 3.1.3 テンプレートにパラメータを渡す tpl = env.get_template('template.tpl') params = { 'navigation': [ { 'href': 'https://example.com/', 'text': 'Home' }, { 'href': 'https://example.com/about/', 'text': 'About' } ] } tpl.render(params) 上記のようなパラメータを渡した場合、テンプレートでは
  • 【Jinja2】PythonのテンプレートエンジンJinja2を使う
    前提 Python: 3.12 Jinja2: 3.1.3 Install pip install Jinja2 Sample from jinja2 import Environment, FileSystemLoader loader = FileSystemLoader(template_dir, encoding='utf-8') env = Environment(Loader=loader, autoescape=False) tpl = env.get_template(template_name) params = { 'title': 'Example Page Title' } with open(path, mode='w', encoding='utf-8') as f: f.write(tpl.render(params)) 変数 テンプレート内での使用 <h1>{{ title }}</h1> for文の中で使用できる