Python3.8.5での辞書型(dictionary)の作り方について。
d = {"x": 100, 'y': 200}
print(d)
#②辞書型の作り方その2(keyの頭に数字はダメ)
i = dict(x=100, わい='200', Z="さんびゃく")
print(i)
#③辞書型の作り方その3
w = dict([('x', 100), ('わい', "200"), (3, 'さんびゃく')])
print(w)
上記のプログラムを出力した結果は、以下のとおりです。
①の出力結果
{'x': 100, 'y': 200}
②の出力結果
{'x': 100, 'わい': '200', 'Z': 'さんびゃく'}
③の出力結果
{'x': 100, 'わい': '200', 3: 'さんびゃく'}
辞書型の変数の作り方は上記のように3パターンあります。
この作り方のそれぞれの定型は、以下のようになっています。
①のパターン
変数 = {key: value, 'key': value, "key": value}
②のパターン
変数 = dict(key=value, key=value)
③のパターン
変数 = dict([(key, value), ('key', value), ("key", value)])
keyの部分には値の名前が入ります。
valueの部分にはkeyに連動した値が入ります。
②のパターンの記述に関しては、①や③とは少し違います。
②のパターンでは、keyの部分にシングルクオーテーションやダブルクオーテーションが使えません。
これらの記号で値を囲むとエラーになります。
また、②のパターンではkeyの値の頭に半角数字または全角数字を使うことはできません。
keyの頭に数字を使った場合も、すべてエラーになってしまいます。
辞書型のvalueを書き換える。
d['x'] = 90
d['y'] = 'abc'
print(d)
上記のように、既存の辞書型の変数のvalueの値を上書きすることが可能です。
このプログラムの出力結果は、以下のようになります。
dの出力結果
{'x': 90, 'y': 'abc'}
辞書型の変数に新たなkeyとvalueを追加する。
d['Z'] = 'あいうえお'
d[5] = 500
print(d)
上記のように、既存の辞書型の変数に新しいkeyとvalueを追加することが可能です。
このプログラムの出力結果は、以下のようになります。
dの出力結果
{'x': 100, 'y': 200, 'Z': 'あいうえお', 5: 500}
辞書型のデータをfor文で処理する。
#①数値がvに入らない。
for v in d:
print(v)
#②辞書のitemsメソッドを使うとkにx、vに100が入る。
for k, v in d.items():
print(k, ':', v)
#③itemsメソッドを使うが戻り値用の変数が1つしかないパターン。
for k in d.items():
print(k)
#④itemsメソッドの戻り値が2つなのに戻り値用の変数を3つ以上用意したパターン。
for k, v, w in d.items():
print(k, ':', v, ':', w)
辞書型のデータの場合、①のパターンのようにfor文でinを使って処理すると、変数vにはkeyの値しか格納されません。
このような場合に使うのが辞書型に用意されているitemsメソッドです。
②のパターンのように戻り値を格納する変数を2つ用意して変数dをitemsメソッドで処理してやると、kの中にはkeyの値が、vの中にはそのkeyに対応したvalueの値がそれぞれ格納されます。
なので、上記のプログラムの出力結果は以下のようになります。
①の出力結果
x
y
②の出力結果
x : 100
y : 200
③の出力結果
('x', 100)
('y', 200)
④の出力結果
エラー
itemsメソッドからの戻り値の数よりも戻り値用の変数の数が少ない③のパターンでは、一応エラーはでません。
しかしkeyとvalueをつなぐ記号が、なぜかコロンからカンマに変わって表示されます。
itemsメソッドからの戻り値の数よりも戻り値用の変数の数のほうが多い④のパターンでは、Pythonは問答無用でエラーを吐いてきます。
以上です。