【python】辞書型リストの作成・要素追加/変更/削除・for文で抜き出す方法を実例でわかりやすく解説(初心者向け)

Python-prograshi(プロぐらし)-kv Python
記事内に広告が含まれていることがあります。

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
タイトルとURLをコピーしました