#はじめに
基礎から定着させていこうということで辞書についてまとめました。
Python 3.8.2
#辞書の作成
dict.py
d = {"x":1,"y":2}
print("d is",type(d))
print(d)
d2 = dict(x=10,y=20)
print("d2 is",type(d2))
print(d2)
d3 = {"x":"hello","y":"world"}
print("d3 is",type(d3))
print(d3)
出力結果
d is <class 'dict'>
{'x': 1, 'y': 2}
d2 is <class 'dict'>
{'x': 10, 'y': 20}
d3 is <class 'dict'>
{'x': 'hello', 'y': 'world'}
#辞書の書き換え、追加
dict.py
d = {"x":1,"y":2}
d["x"] = 11
print(d)
d["y"] = "yyy"
print(d)
d["z"] = 3
print(d)
出力結果
{'x': 11, 'y': 2}
{'x': 11, 'y': 'yyy'}
{'x': 11, 'y': 'yyy', 'z': 3}
#辞書のkeyとvalueの確認
dict.py
d = {"x":1,"y":2}
print(d.keys())
print(d.values())
出力結果
dict_keys(['x', 'y'])
dict_values([1, 2])
#要素の確認
dict.py
d = {"x":1,"y":2,"z":3}
print(d["x"])
print(d.get("y"))
出力結果
1
2
#辞書に存在しない要素の確認
"nothing"という辞書には無いkeyを指定して要素を確認する
keyは存在しないので、デフォルトでNoneという値を返す
デフォルト以外の値を返したい場合は、keyの後に返したい値を指定する
dict.py
d = {"x":1,"y":2,"z":3}
print(d.get("nothing"))
print(d.get("nothing", 0))
出力結果
None
0
d[key]の方法で存在しないkeyを指定するとエラーが発生する
dict.py
d = {"x":1,"y":2,"z":3}
print(d["nothing"])
出力結果
Traceback (most recent call last):
File "dict.py", line 52, in <module>
print(d["nothing"])
KeyError: 'nothing'
#keyが辞書に存在するか確認
dict.py
d = {"x":1,"y":2,"z":3}
r = "x" in d
print(r)
r = "a" in d
print(r)
出力結果
True
False
#辞書のオーバーライド
dict.py
d = {"x":1,"y":2}
d2 = {"x":10,"z":30}
d.update(d2)
print(d)
出力結果
{'x': 10, 'y': 2, 'z': 30}
#辞書の削除
dict.py
d = {"x":1,"y":2,"z":3}
del d
print(d)
「del d」を行った後に「print(d)]で呼び出しているため、エラーが発生している
辞書自体が削除されていることが確認できる
出力結果
Traceback (most recent call last):
File "dict.py", line 74, in <module>
print(d)
NameError: name 'd' is not defined
#辞書のコピー
dict.py
d = {"x":1,"y":2,"z":3}
d2 = d.copy()
d2["x"] = 10
print(d)
print(d2)
print("d is",id(d))
print("d2 is",id(d2))
idを確認してみると別のオブジェクトであることが確認できる
出力結果
{'x': 1, 'y': 2, 'z': 3}
{'x': 10, 'y': 2, 'z': 3}
d is 4442169536
d2 is 4441815872
#要素の抜きだし、削除
dict.py
d = {"x":1,"y":2,"z":3}
d.pop("x")
print(d)
del d["y"]
print(d)
出力結果
{'y': 2, 'z': 3}
{'z': 3}
#辞書のクリア
dict.py
d = {"x":1,"y":2,"z":3}
d.clear()
print(d)
辞書の中身がクリアになっていることが確認できる
出力結果
{}
以上