【Python入門】辞書のまとめ!(取得/追加/更新/削除など)

Python Python

Pythonの辞書(dictionary)について、まとめてみました。
辞書について解説した後に、下記のことを試しています。

・キーの値を取得
・辞書型のデータに、新しくキーと値を追加
・指定キーの値の更新
・指定キーと値の削除・値の全削除
・for文でのループ

公式サイトのこちらに辞書についての記事が書いているので、あわせて確認してみてください。
載せているコードはPythonのバージョン3.10.7で動作を確認しています。

Pythonの辞書とは?

Pythonの辞書はキーと値が関連しているデータになります。
本の辞書で、索引から対象の情報を見にいくように、Pythonの辞書でもキーをつけることでキーからデータを取得することが可能です。

例えば、下記のように辞書型のデータを作成できます。

user = {'name': 'taro', 'age': 30}

print(type(user)) # <class 'dict'>

辞書型のデータをuser変数に代入しています。
波括弧({})で括っている箇所が辞書型のデータになります。

コロン(:)の左側がキーで、右側が値です。
上記では、’name’というキーに’taro’が設定されて、’age’というキーに30が設定されていることになります。

作成したuser変数(辞書型)を、print関数を使って型を出力してみました。
そうすると「<class 'dict'>」が返ってきて、辞書型のオブジェクトになっていることが確認できました。
このように簡単に辞書型のデータを作ることができます。

Pythonの辞書の使い方

Pythonで辞書を使って、データ操作する方法をまとめてみました。

キーから値を取得する

辞書型にキーを使って、アクセスして値を取ってきてみます。

user = {'name': 'taro', 'age': 30}

print(user['name']) # taro

まず、user変数に辞書型のデータを代入しています。
次の処理で、user変数の「name」キーにアクセスして、取得した値をprint関数で出力しています。
結果、取得した値の「taro」が出力されます。

キーと値を追加する

辞書型に値を追加します。
配列のようにキーを指定して、新しい値を入れると追加できます。

user = {'name': 'taro', 'age': 30}
user['address'] = '福岡県福岡市'

print(user) # {'name': 'taro', 'age': 30, 'address': '福岡県福岡市'}

user変数に辞書型のデータを代入しました。
その次の行で、addressというキーを作って、「福岡県福岡市」を代入しました。
これで、辞書に新しくキーと値が追加されます。

もしくは、下記のようにupdateメソッドを使って、追加することもできます。
updateメソッドでは、キーが存在する場合には更新し、存在しない場合に追加されます。

user = {'name': 'taro', 'age': 30}
user.update({'address': '福岡県福岡市'})

print(user) # {'name': 'taro', 'age': 30, 'address': '福岡県福岡市'}

先ほどと同じように、user変数に辞書型のデータを代入します。

その後に、updateメソッドを呼び出しています。
渡している内容のキーを確認して、存在しない場合に辞書に追加されます。

指定したキーの値を更新する

辞書型の指定したキーの値を更新したい場合には、既に存在するキーを指定して、値を更新します。

user = {'name': 'taro', 'age': 30}
user['name'] = 'hanako'

print(user) # {'name': 'hanako', 'age': 30}

最初にuser変数に辞書型のデータを代入しています。
その次の行で、キーが「name」の値を更新しています。
print関数でuser変数を出力すると、値が「taro」から「hanako」に変わったことが確認できました。

他の方法として、updateメソッドを使って、更新することもできます。

user = {'name': 'taro', 'age': 30}
user.update({'name': 'hanako'})

print(user) # {'name': 'hanako', 'age': 30}

同じようにuser変数に辞書型のデータを用意しています。
updateメソッドを使って、先ほどと同じようにキーが「name」の値を更新しました。

print関数で出力すると、「name」が既に存在するので、値が更新されたことが確認できました。

キーと値を全て削除する

辞書型のキーと値を全て削除したいときには、clearメソッドを使います。

user = {'name': 'taro', 'age': 30}
user.clear()

print(user) # {}

最初に辞書型にキーと値が2つ入った、user変数を作りました。
その次の行で、user変数からclearメソッドを呼び出しています。

これで、キーと値が全て削除されます。
print関数で確認すると、空になっていることがわかります。

指定したキーと値を削除する

popメソッドを使って、指定したキーと値を削除することができます。

apple = {'color': 'red', 'price': 120, 'weight': '300g'}
result = apple.pop('price')

print(result) # 120
print(apple) # {'color': 'red', 'weight': '300g'}

apple変数に辞書型のデータを作成しました。
次の行で、作成したapple変数からpopメソッドを呼び出しています。

渡しているのは削除するキーです。
今回は「price」を渡して、キーと値を削除します。
返り値として、削除されるキーに関連づいている値が返ってきます。

返ってきた値をresult変数に受け取っています。
print関数で出力すると、resultは削除したpriceキーの値、「120」が返ってきています。
print関数でapple変数を出力すると、priceキーと値が消えていることが確認できました。

削除するキー項目の値が必要ない場合には、delキーワードを使うこともできます。

apple = {'color': 'red', 'price': 120, 'weight': '300g'}
del apple['price']

print(apple) # {'color': 'red', 'weight': '300g'}

先ほどと同じapple変数を用意しました。
次の処理で、delキーワードを使って、apple変数に入っている「price」キー項目を削除しました。

print関数で、apple変数を確認すると、削除されていることが確認できます。

辞書をループして操作する方法

辞書型のデータをループして使う方法についてです。
for文を使用して、辞書型のデータをひとつずつ取り出して使用することができます。

キーを取り出す

for文に辞書型を、そのまま指定すると、キーだけがループする値として設定されます。

fruits = {'banana': 'バナナ', 'apple': 'りんご', 'grape': 'ぶどう'}

for fruit in fruits:
    print(fruit)

fruits変数に辞書型のデータを代入しました。
この変数をfor文に指定します。

print関数でfruit変数を確認すると、下記のようにキーだけが取り出されます。

banana
apple
grape

キーが取り出せているので、値を取り出したい時には、下記のように辞書にキーを指定することができます。

for fruit in fruits:
    print(fruits[fruit])

値のみ取り出す

もう少しわかりやすく、値のみをfor文で取り出すこともできます。
辞書型オブジェクトからvaluesメソッドを呼び出してループします。

fruits = {'banana': 'バナナ', 'apple': 'りんご', 'grape': 'ぶどう'}

for fruit in fruits.values():
    print(fruit)

fruits変数に、先ほどと同じように辞書型データを用意しています。

次の処理で、fruits変数からvaluesメソッドを呼んで、for文でループしています。
valuesメソッドを読んでいるので、値だけが取り出されます。

結果を確認すると、下記のようになります。

バナナ
りんご
ぶどう

キーと値を一緒に取り出す

キーと値を一緒に取り出して、ループ時に使う変数に設定することもできます。
この場合は、辞書型オブジェクトからitemsメソッドを呼び出します。

fruits = {'banana': 'バナナ', 'apple': 'りんご', 'grape': 'ぶどう'}

for key, value in fruits.items():
    print(f"キー:{key} 値:{value}")

fruits変数に、先ほどと同じように辞書型データを用意しています。

次の処理で、fruits変数からitemsメソッドを呼んで、for文でループしています。
ループ時に設定される変数として、keyとvalueを用意しました。

key変数に辞書のキーが代入されて、value変数に値が代入されます。
print関数で出力すると、下記のようにキーと値が取れていることが確認できました。

キー:banana 値:バナナ
キー:apple 値:りんご
キー:grape 値:ぶどう

コメント

タイトルとURLをコピーしました