「Pythonの基礎 - 辞書の作成と操作」の版間の差分

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

ページの作成:「== 概要 == 辞書(ディクショナリ)とは、複数のデータ型を管理することができる。(連想配列とも呼ばれる)<br> 辞書の特徴は、要…」
 
 
(同じ利用者による、間の4版が非表示)
11行目: 11行目:
<br>
<br>
辞書 = {キー1:値1, キー2:値2, キー3:値3, ...}という形で宣言する。<br>
辞書 = {キー1:値1, キー2:値2, キー3:値3, ...}という形で宣言する。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  d = {"x":100, "y":200, "z":300}
  d = {"x":100, "y":200, "z":300}
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


19行目: 19行目:
辞書はキーでそれぞれの値を抽出することができる。
辞書はキーでそれぞれの値を抽出することができる。
辞書型変数に続けて角括弧でキーを指定することで、値を抽出できる。<br>
辞書型変数に続けて角括弧でキーを指定することで、値を抽出できる。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  dic = {"x":100, "y":200}
  dic = {"x":100, "y":200}
  print(dic["x"])
  print(dic["x"])
27行目: 27行目:
  100
  100
  200
  200
  </source>
  </syntaxhighlight>
<br>
<br>
次は、キーを指定して値を変更する。<br>
次は、キーを指定して値を変更する。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  dic = {"x":100, "y":200}
  dic = {"x":100, "y":200}
  dic["x"] = 300
  dic["x"] = 300
37行目: 37行目:
  # 出力
  # 出力
  {'x' : 300, 'y' : 200}
  {'x' : 300, 'y' : 200}
  </source>
  </syntaxhighlight>
<br>
<br>
次に、新たにデータを辞書に追加する。<br>
次に、新たにデータを辞書に追加する。<br>
以下の例では、新しいキーを指定して、新しい要素を追加している。(文字列のキーと数値のキーの両方で行う)<br>
以下の例では、新しいキーを指定して、新しい要素を追加している。(文字列のキーと数値のキーの両方で行う)<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  dic = {"x":100, "y":200}
  dic = {"x":100, "y":200}
  dic["z"] = 300
  dic["z"] = 300
49行目: 49行目:
  # 出力
  # 出力
  {'x' : 100, 'y' : 200, 'z' : 300, 10 : 400}
  {'x' : 100, 'y' : 200, 'z' : 300, 10 : 400}
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


57行目: 57行目:


以下の例では、リストが要素のリスト、タプルが要素のリスト、リストが要素のタプル、文字列のリスト、文字列のタプルをdict関数で変換する。<br>
以下の例では、リストが要素のリスト、タプルが要素のリスト、リストが要素のタプル、文字列のリスト、文字列のタプルをdict関数で変換する。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  list_of_list = [['a', 'b'], ['c', 'd'], ['e', 'f']]
  list_of_list = [['a', 'b'], ['c', 'd'], ['e', 'f']]
  list_of_tuple = [('a', 'b'), ('c', 'd'), ('e', 'f')]
  list_of_tuple = [('a', 'b'), ('c', 'd'), ('e', 'f')]
76行目: 76行目:
  {'a' : 'b', 'c' : 'd', 'e' : 'f'}
  {'a' : 'b', 'c' : 'd', 'e' : 'f'}
  {'a' : 'b', 'c' : 'd', 'e' : 'f'}
  {'a' : 'b', 'c' : 'd', 'e' : 'f'}
  </source>
  </syntaxhighlight>
<br>
<br>
また、dict関数内で変数に値を代入しても辞書が作成できる。<br>
また、dict関数内で変数に値を代入しても辞書が作成できる。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  dic = dict(x=100, y=200)
  dic = dict(x=100, y=200)
  print(dic)
  print(dic)
85行目: 85行目:
  # 出力
  # 出力
  {x : 100, y : 200}
  {x : 100, y : 200}
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


91行目: 91行目:
辞書型には、様々なメソッドがある。ここでは、よく使用されるものを記載する。<br>
辞書型には、様々なメソッドがある。ここでは、よく使用されるものを記載する。<br>
<br>
<br>
===== keys関数とvalues関数で全てのキーと値を取得する =====
==== keys関数とvalues関数で全てのキーと値を取得する ====
これらの関数は、それぞれキーの全て、値の全てを取得する時に使用する。<br>
これらの関数は、それぞれキーの全て、値の全てを取得する時に使用する。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  dic = {'x':100, 'y':200}
  dic = {'x':100, 'y':200}
  print(dic.keys())
  print(dic.keys())
101行目: 101行目:
  dict_keys(['x', 'y'])
  dict_keys(['x', 'y'])
  dict_values([100, 200])
  dict_values([100, 200])
  </source>
  </syntaxhighlight>
<br>
<br>
===== update関数で辞書を結合する =====
==== update関数で辞書を結合する ====
update関数は、2つの異なる辞書を結合することができる。キーが同じ場合は新しい値に更新する。<br>
update関数は、2つの異なる辞書を結合することができる。キーが同じ場合は新しい値に更新する。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  dic1 = {'l':10, 'm':200, 'n':300}
  dic1 = {'l':10, 'm':200, 'n':300}
  dic2 = {'l':100, 'o':400}
  dic2 = {'l':100, 'o':400}
113行目: 113行目:
  # 出力
  # 出力
  {'l' : 100, 'm' : 200, 'n' : 300, 'o' : 400}
  {'l' : 100, 'm' : 200, 'n' : 300, 'o' : 400}
  </source>
  </syntaxhighlight>
<br>
<br>
===== get関数で値を取得する =====
==== get関数で値を取得する ====
辞書は角括弧[]にキーを指定することで値を取得することができるが、get関数を使用しても同様のことができる。<br>
辞書は角括弧[]にキーを指定することで値を取得することができるが、get関数を使用しても同様のことができる。<br>
また、辞書にないキーを指定した場合、get関数では何も返さず、角括弧[]で指定した場合はエラーになる。<br>
また、辞書にないキーを指定した場合、get関数では何も返さず、角括弧[]で指定した場合はエラーになる。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  dic = {'x':10, 'y':20}
  dic = {'x':10, 'y':20}
  val = dic.get('x')  # d['x']と同じ操作
  val = dic.get('x')  # d['x']と同じ操作
125行目: 125行目:
  # 出力
  # 出力
  10
  10
  </source>
  </syntaxhighlight>
<br>
<br>
===== pop関数で値を取得する =====
==== pop関数で値を取得する ====
get関数と似たようなメソッドでpop関数がある。<br>
get関数と似たようなメソッドでpop関数がある。<br>
pop関数もキーを指定して値を取得するが、辞書からキーで指定した値を削除するという特徴がある。
pop関数もキーを指定して値を取得するが、辞書からキーで指定した値を削除するという特徴がある。
  <source lang="python">
  <syntaxhighlight lang="python">
  dic = {'x':100, 'y':200, 'z':300}
  dic = {'x':100, 'y':200, 'z':300}
  value = dic.pop('x')
  value = dic.pop('x')
139行目: 139行目:
  100
  100
  {'y' : 200, 'z' : 300}
  {'y' : 200, 'z' : 300}
  </source>
  </syntaxhighlight>
<br>
<br>
===== delで要素を削除する =====
==== delで要素を削除する ====
pop関数ではキーの値を取得した後は辞書から削除されるが、delを使用すると同様に削除することができる。<br>
pop関数ではキーの値を取得した後は辞書から削除されるが、delを使用すると同様に削除することができる。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  dic = {'x':100, 'y':200, 'z':300}
  dic = {'x':100, 'y':200, 'z':300}
  del dic['y']
  del dic['y']
150行目: 150行目:
  # 出力
  # 出力
  {'x' : 100, 'z' : 300}
  {'x' : 100, 'z' : 300}
  </source>
  </syntaxhighlight>
<br>
<br>
また、キーを指定せずにdel関数を使用する場合は、辞書自体が削除される。<br>
また、キーを指定せずにdel関数を使用する場合は、辞書自体が削除される。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  del dic
  del dic
  </source>
  </syntaxhighlight>
<br>
<br>
===== clear関数で値を削除する =====
==== clear関数で値を削除する ====
delを使用すると辞書自体が削除されるが、clear関数を使用すると値のみを削除して空の辞書が残り、辞書自体の操作を続けることができる。<br>
delを使用すると辞書自体が削除されるが、clear関数を使用すると値のみを削除して空の辞書が残り、辞書自体の操作を続けることができる。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  dic = {'x':100, 'y':200, 'z':300}
  dic = {'x':100, 'y':200, 'z':300}
  dic.clear()
  dic.clear()
166行目: 166行目:
  # 出力
  # 出力
  {}
  {}
  </source>
  </syntaxhighlight>
<br>
<br>
===== inでキーの有無を調べる =====
==== inでキーの有無を調べる ====
辞書に指定するキーがあるかを調べるには、inを使用する。<br>
辞書に指定するキーがあるかを調べるには、inを使用する。<br>
"キー" in 辞書の形で使用する。<br>
"キー" in 辞書の形で使用する。<br>
辞書にキーが存在すればTrue、キーが存在しない場合はFalseを返す。<br>
辞書にキーが存在すればTrue、キーが存在しない場合はFalseを返す。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  dic = {'x':100, 'y':200, 'z':300}
  dic = {'x':100, 'y':200, 'z':300}
  print('x' in dic)
  print('x' in dic)
180行目: 180行目:
  True
  True
  False
  False
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


187行目: 187行目:
ただし、これはリストのコピーの時と同様に、値渡しと参照渡しの違いがあるので注意が必要である。<br>
ただし、これはリストのコピーの時と同様に、値渡しと参照渡しの違いがあるので注意が必要である。<br>
<br>
<br>
===== 代入演算子でコピーする(参照渡し) =====
==== 代入演算子でコピーする(参照渡し) ====
  <source lang="python">
  <syntaxhighlight lang="python">
  dic1 = {'x':100, 'y':200, 'z':300}
  dic1 = {'x':100, 'y':200, 'z':300}
  dic2 = d1
  dic2 = d1
198行目: 198行目:
  {'x' : 500, 'y' : 200, 'z' : 300}
  {'x' : 500, 'y' : 200, 'z' : 300}
  {'x' : 500, 'y' : 200, 'z' : 300}
  {'x' : 500, 'y' : 200, 'z' : 300}
  </source>
  </syntaxhighlight>
<br>
<br>
<br>
<br>
===== copy関数でコピーする(値渡し) =====
==== copy関数でコピーする(値渡し) ====
全く独立した別の辞書として扱えるようするには、copy関数を使用する。<br>
全く独立した別の辞書として扱えるようするには、copy関数を使用する。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  dic1 = {'x':100, 'y':200, 'z':300}
  dic1 = {'x':100, 'y':200, 'z':300}
  dic2 = d1.copy()
  dic2 = d1.copy()
211行目: 211行目:
  {'x' : 100, 'y' : 200, 'z' : 300}
  {'x' : 100, 'y' : 200, 'z' : 300}
  {'x' : 500, 'y' : 200, 'z' : 300}
  {'x' : 500, 'y' : 200, 'z' : 300}
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:Python]]
[[カテゴリ:Python]]