pythonの辞書型リストの作成・要素追加/変更/削除・for文で抜き出す方法など、辞書型配列についてまとめています。
辞書型のリストを作成する
変数名 = {キー1:要素1, キー2:要素2,,,,,,}
└ { }波括弧で囲む
└ 各要素に名前(キー)をつける
└ キーと要素は「:」でつなぐ (cssと似た書き方)
└ 要素の抽出はキーで指定
└ キーおよび要素に演算子も使える
└ 要素は同不順(インデックス番号で指定できない)
①文字列で作成
lists1 = {'a':'AAA', 'b':'BBB', 'c':'CCC'}
print(lists1)
{'a': 'AAA', 'b': 'BBB', 'c': 'CCC'}
print(lists1['c'])
CCC
②数値で作成
lists2 = {1:111, 2:222, 3:333}
print(lists2)
{1: 111, 2: 222, 3: 333}
print(lists2[2])
222
インデックス番号ではなくキーの値とみなされる(キーに数値もセットできるため)
③演算子を使う
lists3 = {1:5*6, 'a':30/6, 2*8:'AAA'+'BBB'}
print(lists3)
{1: 30, 'a': 5.0, 16: 'AAABBB'}
print(lists3[1])
30
print(lists3['a'])
5.0
print(lists3[16])
AAABBB
配列には処理後の値が格納されている
④変数で作成
x=1000
y='try'
listsA = {'a':'AAA', 'b':'BBB', 'c':'CCC'}
listsB = [111, 222, 333]
lists4 = {'a':x, 'b':y, 'c':listsA, 'd':listsB}
print(lists4)
{'a': 1000, 'b': 'try', 'c': {'a': 'AAA', 'b': 'BBB', 'c': 'CCC'}, 'd': [111, 222, 333]}
配列の変数も使える。
⑤キーの重複
lists5 = {5:'CCC', 5:'BBB', 5:'AAA', 5:333, 5:999}
print(lists5)
{5: 999}
print(lists5[5])
999
エラーにはならない。
最後の1要素のみ格納されている。※先頭か順に上書き
エラーになるパターンと種類
①存在しないキーを呼び出す
lists = {'a':'AAA', 'b':'BBB', 'c':'CCC'}
print(lists['f'])
KeyError: 'f'
エラーの種類:KeyError
②インデックス番号で指定
lists = {'a':'AAA', 'b':'BBB', 'c':'CCC'}
print(lists[2])
KeyError: 2
エラーの種類:KeyError
インデックス番号ではなくキーの値とみなされる。キー=2は存在しないためエラー
③カッコが違う
lists = ['a':'AAA', 'b':'BBB', 'c':'CCC']
print(lists)
SyntaxError: invalid syntax
エラーの種類:SyntaxError
{ }波括弧ではなく、カッコ[ ]にするとエラーになる。
④文字列がクオテーションで囲まれてない
lists1 = {'a':'AAA', b:'BBB', 'c':'CCC'}
print(lists1)
NameError: name 'b' is not defined
エラーの種類:NameError
変数とみなされる。定義していないためエラーになる。
要素追加/変更/削除
追加
配列名[追加したいキー名]=追加したい値
lists1 = {'a':'AAA', 'b':'BBB', 'c':'CCC'}
#追加
lists1['d']='ddd'
lists1[3]=333
print(lists1)
{'a': 'AAA', 'b': 'BBB', 'c': 'CCC', 'd': 'ddd', 3: 333}
変更
配列名[変更したいキー名]=変更したい値
└ 元ある要素を上書きする
└ キー名は変更できない
lists1 = {'a': 'AAA', 'b': 'BBB', 'c': 'CCC'}
#変更
lists1['b']=999
lists1['c']='GGG'
print(lists1)
{'a': 'AAA', 'b': 999, 'c': 'GGG'}
削除
①del文
del 配列名[削除したいキー名]
└ 存在しないキーの場合 KeyError
lists1 = {'a': 'AAA', 'b': 'BBB', 'c': 'CCC'}
del lists1['c']
print(lists1)
{'a': 'AAA', 'b': 'BBB'}
②popメソッド
配列名.pop(削除したいキー名)
└ 存在しないキーの場合 KeyError
lists1 = {'a': 'AAA', 'b': 'BBB', 'c': 'CCC'}
del lists1['a']
print(lists1)
{'b': 'BBB', 'c': 'CCC'}
④すべて削除
配列名.pop(削除したいキー名)
└ 存在しない配列の場合 NameError
lists1 = {'a': 'AAA', 'b': 'BBB', 'c': 'CCC'}
lists1.clear()
print(lists1)
{}
for文で一つづつ抜き出す
for [キーにつける名称] in [配列名]:
処理
└ キーにつける名称は任意。for文の中でのみ有効
└ 一つずつ抜き出すのはキー(値ではない)
└ 値の取得 配列名[キーにつける名称]
▼実例
lists = {'a': 'AAA', 'b': 'BBB', 'c': 'CCC'}
for list_key in lists:
print(f'キー:{list_key} 値:{lists[list_key]}')
#出力
キー:a 値:AAA
キー:b 値:BBB
キー:c 値:CCC