LoginSignup
1
0

More than 1 year has passed since last update.

Python 辞書

Last updated at Posted at 2021-12-04

はじめに

基礎から定着させていこうということで辞書についてまとめました。
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)

辞書の中身がクリアになっていることが確認できる

出力結果
{}

以上

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0