pythonの辞書について、空の辞書の扱い方や、値が空の場合の判定方法等について紹介します。
本記事では、下記の内容を紹介しています。
この記事で分かること
- 空の辞書の作成方法、辞書を空にする方法【初期化】
- 辞書が空か判定する方法
- 辞書の値(value)が空かどうか判定する方法
- 辞書の値(value)が空の場合に、要素を削除する方法
スポンサーリンク
空の辞書(dict)の作成方法、辞書を空にする方法【初期化】
はじめに、空の辞書を作成する方法について紹介します。
波括弧 " { } "で辞書を空にする方法と、辞書のclearメソッドを用いる方法の2通りの方法を紹介します。
波括弧 " { } " で辞書を空にする
要素が空の波括弧 " { } " を用いることで、辞書を空にできます。
以下、空の波括弧 " { } " を用いて辞書を空にするサンプルコードです。
### 辞書を空にする
fruits_dict = {'Apple':100, 'Banana':200, 'Grape':500, 'Orange':100}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Grape': 500, 'Orange': 100}
fruits_dict = {}
print(fruits_dict)
# { }
辞書のclearメソッドで、辞書を空にする
辞書のclearメソッドを用いても、辞書を空にできます。
以下、辞書のclearメソッドを用いて辞書を空にするサンプルコードです。
### 辞書を空にする
fruits_dict = {'Apple':100, 'Banana':200, 'Grape':500, 'Orange':100}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Grape': 500, 'Orange': 100}
fruits_dict.clear()
print(fruits_dict)
# { }
辞書を空にするうえでの、波括弧 " {} " とclearメソッドの違い
波括弧で辞書を空にする方法と、clearメソッドで辞書を空にする方法は、どちらも辞書の要素が空になっており、一見すると挙動に差が無いように見えます。
波括弧で辞書を空にする方法は、要素が削除されているわけではなく、新たに要素が空の辞書インスタンスが生成されています。
以下、波括弧を用いて辞書を空にするサンプルコードです。
### 波括弧で辞書を空にする
dict1 = {'Apple':100, 'Banana':200, 'Grape':500}
dict2 = dict1
print(dict1)
# {'Apple': 100, 'Banana': 200, 'Grape': 500}
print(dict2)
# {'Apple': 100, 'Banana': 200, 'Grape': 500}
dict1 = {}
print(dict1)
# { }
print(dict2)
# {'Apple': 100, 'Banana': 200, 'Grape': 500}
波括弧で辞書を空にする方法では、空になっているのはdict1だけであり、dict2は空になっていません。
次に、clearメソッドで辞書を空にするサンプルコードです。
### clearメソッドで辞書を空にする
dict1 = {'Apple':100, 'Banana':200, 'Grape':500}
dict2 = dict1
print(dict1)
# {'Apple': 100, 'Banana': 200, 'Grape': 500}
print(dict2)
# {'Apple': 100, 'Banana': 200, 'Grape': 500}
dict1.clear()
print(dict1)
# { }
print(dict2)
# { }
clearメソッドを用いると、dict1、dict2 とも空になっています。
スポンサーリンク
辞書(dict)が空か判定する方法(チェック、確認)
次に、辞書が空かどうか判定する方法を紹介します。
pythonの組み込み関数のany関数を用いる方法と、len関数を用いる方法の2通りの方法を紹介します。
以下、組み込み関数のany関数を用いて、辞書が空か判定するサンプルコードです。
### any関数を用いて、辞書が空か判定
fruits_dict = {'Apple':100, 'Banana':200, 'Grape':500, 'Orange':100}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Grape': 500, 'Orange': 100}
print(any(fruits_dict))
# True
fruits_dict.clear()
print(fruits_dict)
# { }
print(any(fruits_dict))
# False
辞書に要素が含まれている場合にはTrueが返され、辞書が空の場合にはFalseが返されます。
次に、組み込み関数のlen関数を用いて、辞書が空か判定するサンプルコードです。
### len関数を用いて、辞書が空か判定
fruits_dict = {'Apple':100, 'Banana':200, 'Grape':500, 'Orange':100}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Grape': 500, 'Orange': 100}
print(len(fruits_dict))
# 4
fruits_dict.clear()
print(fruits_dict)
# { }
print(len(fruits_dict))
# 0
辞書が空の場合には、0が返されます。
スポンサーリンク
辞書の値(value)が空(None)かどうか確認
次に、辞書の値がNoneかどうか判定する方法を紹介します。
以下、" if + 条件式 " が含まれる内包表記で、値がNoneとなっている要素に対応するキーを抽出するサンプルコードです。
### 辞書の値が空かどうか確認
fruits_dict = {'Apple':100, 'Banana':None, 'Grape':500, 'Lemon':150, 'Orange':None }
print(fruits_dict)
# {'Apple': 100, 'Banana': None, 'Grape': 500, 'Lemon': 150, 'Orange': None}
fruits_list = [ fruit for fruit, price in fruits_dict.items() if price is None ]
print(fruits_list)
# ['Banana', 'Orange']
> fruits_list = [ fruit for fruit, price in fruits_dict.items( ) if price is None ]
fruits_dict.items( )では、辞書のitemsメソッドを用いて、fruits_dictに含まれるすべてのキーと値を取得しています。
取得したキーと値は、それぞれ、fruitとpriceに1つずつ渡されます。
if price is None の部分で、値に対応するpriceがNoneと一致するか判定しています。
この条件式がTrueになる場合のfruitだけから、新しいリストを作成しています。
辞書のitemsメソッドの使い方など、辞書のキーと値の取得方法については、下記の記事で紹介しています。
内包表記については、下記の記事で紹介しています。
辞書の値(value)が空(None)の場合に削除する方法
次に、辞書の値がNoneの場合に、対応する要素を削除する方法を紹介します。
以下、" if + 条件式 " が含まれる辞書内包表記で、値がNoneではない要素から新たな辞書を作成するサンプルコードです。
### 辞書の値がNoneの要素を削除
fruits_dict1 = {'Apple':100, 'Banana':None, 'Grape':500, 'Lemon':150, 'Orange':None }
print(fruits_dict1)
# {'Apple': 100, 'Banana': None, 'Grape': 500, 'Lemon': 150, 'Orange': None}
fruits_dict2 = {fruit:price for fruit, price in fruits_dict1.items() if price is not None}
print(fruits_dict2)
# {'Apple': 100, 'Grape': 500, 'Lemon': 150}
条件式の部分を、 " if price is not None " とすることで、値がNoneではない要素を抽出しています。
スポンサーリンク
まとめ
pythonの辞書について、空の辞書の扱い方や、値が空の場合の判定方法等について紹介しました。
辞書の扱い方に関する他の関連記事についても、併せて参考にしていただければ幸いです。
スポンサーリンク