辞書型
公式サイト:
dict – マッピング型 | Python 3.x ドキュメント [公式]
使い方
空の辞書を作成する。
empty = {}
Code language: Python (python)
辞書を作成する。
alphabets = { "a": "apple", "b": "baby", "c": "cheese" }
Code language: Python (python)
参考:
dict – 辞書について | Python Carnival
dict – 辞書の使い方の基本 | Hbk project
作成
参考:
辞書を作成する dict() と波括弧/辞書内包表記 | note.nkmk.me
How to create an empty dictionary? | TutorialsPoint
Creating a new dictionary – Stack Overflow
スライス
参考:
Slicing a dictionary – Stack Overflow
in 演算子
演算子
in
: キーが存在することを判定するnot in
: キーが存在しないことを判定する
使用例
in
演算子を用いてキーの存在を判定する。
d = { "greeting": "Hello!" } if "greeting" in d: print(d["greeting"]) else: print("Bye!")
参考:
辞書のキー/値の存在を確認/取得/検索 | note.nkmk.me
in 演算子でリストなどに特定の要素が含まれるか判定 | note.nkmk.me
辞書に指定したキーの要素が含まれているか確認する | JavaDrive
dictionary 内に Key が存在するか確認する方法 – Qiita
in 演算子/not in 演算子の使いかた | Hbk project
比較演算子 in と not in の書き方 | TechAcademy マガジン
繰り返し処理 (for 文)
キーを繰り返し処理する。
for key in my_dict:
print(f"Key: {key}")
Code language: Python (python)
値を繰り返し処理する。
for value in my_dict.values():
print(f"Value: {value}")
Code language: Python (python)
キーと値の組み合わせを繰り返し処理する。
for key, value in my_dict.items():
print(f"Key: {key}, Value: {value}")
Code language: Python (python)
参考:
keys / values / items – 辞書の for ループ処理 | note.nkmk.me
辞書の for ループで要素を取り出す方法 | HEADBOOST
辞書を for 文でループ処理する方法をわかりやすく解説! | キカガクの技術ブログ
ビュー
メソッド
keys()
: キーのビューを返すvalues()
: 値のビューを返すitems()
: キーと値をペアにしたビューを返す
ドキュメント:
辞書ビューオブジェクト | Python 3.x ドキュメント [公式]
和集合
参考:
removeprefix / removesuffix – 辞書の和集合演算子 | @IT
指定した要素を取り出す (pop)
ドキュメント:
ミュータブルなシーケンス型 | Python 3.x ドキュメント [公式]
参考:
clear / pop / popitem / del – 辞書の要素を削除する | note.nkmk.me
unpacking a dictionary – Stack Overflow
アンパック
ドキュメント:
参考:
Object Spread Operator for Python | Sparrow Computing
Why this dictionary unpacking is not working? – Stack Overflow
Is there an object spread syntax in python 2.7x like in JavaScript? – Stack Overflow
Unpack list of dictionaries – Stack Overflow
nested dictionary spread (**kwargs) – Stack Overflow
指定したキーを除外する
参考:
Retain all entries except for one key – Stack Overflow
正規表現に合致するキーを探索する
参考:
dictionary search values for keys using regular expression – Stack Overflow
内包表記
内包表記を用いて辞書を作成する。
cubes = { i: f"Cube_{i:03}" for i in range(1, 10) }
Code language: Python (python)
参考:
ChainMap
ドキュメント:
collections.ChainMap | Python 3.x ドキュメント [公式]
参考:
collections.ChainMap の使い方を理解する | 静かなる名辞
Unpack list of dictionaries – Stack Overflow
キーが存在しない場合のみ追加する (setdefault)
参考:
setdefault – Python で辞書にキーが存在しないときのみ要素を追加する | note.nkmk.me
setdefault() Method | W3Schools
ハッシュ
ハッシュ可能な値のみが、辞書のキーとして使用できる。
ハッシュ可能性
- ハッシュ可能 (hashable):
int
/float
/str
/tuple
/frozenset
- ハッシュ不可能 (unhashable):
list
/dict
/set
ドキュメント:
hashable | Python 3.x ドキュメント [公式]
参考:
3 Essential Questions About Hashable (Yong Cui) | Better Programming
What does “hashable” mean? – Stack Overflow
値の出現回数を数える
operator.countOf
を使う
ドキュメント:
countOf – operator | Python 3.x ドキュメント [公式]
参考:
count the number of occurrences of a certain value in a dictionary? – Stack Overflow
KeyError
get
メソッドを用いて、キーが存在しなかった場合に指定したデフォルト値を返させる。
value = my_dict.get("key", "Missing")
Code language: Python (python)
ドキュメント:
get | Python 3.x ドキュメント [Official]
参考:
dictionary で KeyError を出さないようにする – Qiita
辞書型の KeyError を回避する | TomoProg の技術書
Tips
list / dict 操作で覚えておきたいイディオム – Qiita
PyDictObject
ドキュメント:
辞書オブジェクト – C API リファレンスマニュアル | Python 3.x ドキュメント [公式]
AttrDict
リポジトリ:
jakob753951/AttrDict: A dictionary that allows attribute-style access – GitHub
bcj/AttrDict: A dictionary that allows attribute-style access – GitHub
参考:
Jashin
リポジトリ:
sojin-project/jashin: Assorted Python utilities – GitHub
参考: