文法・環境 辞書

【python】空の辞書の作成、初期化、判定方法など

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の辞書について、空の辞書の扱い方や、値が空の場合の判定方法等について紹介しました。

辞書の扱い方に関する他の関連記事についても、併せて参考にしていただければ幸いです。

スポンサーリンク

-文法・環境, 辞書
-,