📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
ページの作成:「== 概要 == 辞書(ディクショナリ)とは、複数のデータ型を管理することができる。(連想配列とも呼ばれる)<br> 辞書の特徴は、要…」 |
|||
| (同じ利用者による、間の4版が非表示) | |||
| 11行目: | 11行目: | ||
<br> | <br> | ||
辞書 = {キー1:値1, キー2:値2, キー3:値3, ...}という形で宣言する。<br> | 辞書 = {キー1:値1, キー2:値2, キー3:値3, ...}という形で宣言する。<br> | ||
< | <syntaxhighlight lang="python"> | ||
d = {"x":100, "y":200, "z":300} | d = {"x":100, "y":200, "z":300} | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
| 19行目: | 19行目: | ||
辞書はキーでそれぞれの値を抽出することができる。 | 辞書はキーでそれぞれの値を抽出することができる。 | ||
辞書型変数に続けて角括弧でキーを指定することで、値を抽出できる。<br> | 辞書型変数に続けて角括弧でキーを指定することで、値を抽出できる。<br> | ||
< | <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 | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
次は、キーを指定して値を変更する。<br> | 次は、キーを指定して値を変更する。<br> | ||
< | <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} | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
次に、新たにデータを辞書に追加する。<br> | 次に、新たにデータを辞書に追加する。<br> | ||
以下の例では、新しいキーを指定して、新しい要素を追加している。(文字列のキーと数値のキーの両方で行う)<br> | 以下の例では、新しいキーを指定して、新しい要素を追加している。(文字列のキーと数値のキーの両方で行う)<br> | ||
< | <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} | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
| 57行目: | 57行目: | ||
以下の例では、リストが要素のリスト、タプルが要素のリスト、リストが要素のタプル、文字列のリスト、文字列のタプルをdict関数で変換する。<br> | 以下の例では、リストが要素のリスト、タプルが要素のリスト、リストが要素のタプル、文字列のリスト、文字列のタプルをdict関数で変換する。<br> | ||
< | <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'} | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
また、dict関数内で変数に値を代入しても辞書が作成できる。<br> | また、dict関数内で変数に値を代入しても辞書が作成できる。<br> | ||
< | <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} | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
| 91行目: | 91行目: | ||
辞書型には、様々なメソッドがある。ここでは、よく使用されるものを記載する。<br> | 辞書型には、様々なメソッドがある。ここでは、よく使用されるものを記載する。<br> | ||
<br> | <br> | ||
==== keys関数とvalues関数で全てのキーと値を取得する ==== | |||
これらの関数は、それぞれキーの全て、値の全てを取得する時に使用する。<br> | これらの関数は、それぞれキーの全て、値の全てを取得する時に使用する。<br> | ||
< | <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]) | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
==== update関数で辞書を結合する ==== | |||
update関数は、2つの異なる辞書を結合することができる。キーが同じ場合は新しい値に更新する。<br> | update関数は、2つの異なる辞書を結合することができる。キーが同じ場合は新しい値に更新する。<br> | ||
< | <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} | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
==== get関数で値を取得する ==== | |||
辞書は角括弧[]にキーを指定することで値を取得することができるが、get関数を使用しても同様のことができる。<br> | 辞書は角括弧[]にキーを指定することで値を取得することができるが、get関数を使用しても同様のことができる。<br> | ||
また、辞書にないキーを指定した場合、get関数では何も返さず、角括弧[]で指定した場合はエラーになる。<br> | また、辞書にないキーを指定した場合、get関数では何も返さず、角括弧[]で指定した場合はエラーになる。<br> | ||
< | <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 | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
==== pop関数で値を取得する ==== | |||
get関数と似たようなメソッドでpop関数がある。<br> | get関数と似たようなメソッドでpop関数がある。<br> | ||
pop関数もキーを指定して値を取得するが、辞書からキーで指定した値を削除するという特徴がある。 | pop関数もキーを指定して値を取得するが、辞書からキーで指定した値を削除するという特徴がある。 | ||
< | <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} | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
==== delで要素を削除する ==== | |||
pop関数ではキーの値を取得した後は辞書から削除されるが、delを使用すると同様に削除することができる。<br> | pop関数ではキーの値を取得した後は辞書から削除されるが、delを使用すると同様に削除することができる。<br> | ||
< | <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} | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
また、キーを指定せずにdel関数を使用する場合は、辞書自体が削除される。<br> | また、キーを指定せずにdel関数を使用する場合は、辞書自体が削除される。<br> | ||
< | <syntaxhighlight lang="python"> | ||
del dic | del dic | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
==== clear関数で値を削除する ==== | |||
delを使用すると辞書自体が削除されるが、clear関数を使用すると値のみを削除して空の辞書が残り、辞書自体の操作を続けることができる。<br> | delを使用すると辞書自体が削除されるが、clear関数を使用すると値のみを削除して空の辞書が残り、辞書自体の操作を続けることができる。<br> | ||
< | <syntaxhighlight lang="python"> | ||
dic = {'x':100, 'y':200, 'z':300} | dic = {'x':100, 'y':200, 'z':300} | ||
dic.clear() | dic.clear() | ||
| 166行目: | 166行目: | ||
# 出力 | # 出力 | ||
{} | {} | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
==== inでキーの有無を調べる ==== | |||
辞書に指定するキーがあるかを調べるには、inを使用する。<br> | 辞書に指定するキーがあるかを調べるには、inを使用する。<br> | ||
"キー" in 辞書の形で使用する。<br> | "キー" in 辞書の形で使用する。<br> | ||
辞書にキーが存在すればTrue、キーが存在しない場合はFalseを返す。<br> | 辞書にキーが存在すればTrue、キーが存在しない場合はFalseを返す。<br> | ||
< | <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 | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
| 187行目: | 187行目: | ||
ただし、これはリストのコピーの時と同様に、値渡しと参照渡しの違いがあるので注意が必要である。<br> | ただし、これはリストのコピーの時と同様に、値渡しと参照渡しの違いがあるので注意が必要である。<br> | ||
<br> | <br> | ||
==== 代入演算子でコピーする(参照渡し) ==== | |||
< | <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} | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
<br> | <br> | ||
==== copy関数でコピーする(値渡し) ==== | |||
全く独立した別の辞書として扱えるようするには、copy関数を使用する。<br> | 全く独立した別の辞書として扱えるようするには、copy関数を使用する。<br> | ||
< | <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} | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:Python]] | [[カテゴリ:Python]] | ||