Python で辞書を空にする
このチュートリアルでは、Python で辞書を空にする方法を示します。
Python で辞書を空にするために {}
を割り当てる
Python で辞書を空にする簡単な解決策は、{}
を辞書に割り当てることです。
{}
を割り当てると、新しいオブジェクトがインスタンス化され、既存の辞書が置き換えられます。これは、メモリ内の新しい参照が新しいディクショナリに割り当てられ、置き換えられた古いディクショナリに割り当てられたメモリ内のスペースがガベージコレクション用にタグ付けされることを意味します。
dct = {"name": "John", "age": 23}
dct = {}
print("Dictionary contains:", dct)
出力:
Dictionary contains : {}
Python で clear()
関数を使用して辞書内のすべての要素を削除する
もう 1つのアプローチは、Python の組み込み関数 clear()
を使用することです。これにより、辞書に存在するすべてのコンテンツが削除されます。この関数にはパラメーターがなく、戻り値もありません。その唯一の目的は、辞書の内容をクリアすることだけです。
dict = {"name": "John", "age": 23}
dict.clear()
print("Dictionary contains :", dict)
出力:
Dictionary contains : {}
{}
関数と clear()
関数の割り当ての違いは、後者は新しいインスタンスを作成せず、コンテンツがクリアされるため、既存の辞書のすべてのコンテンツと辞書の参照を削除することです。
同じユースケースでこれら 2つのアプローチを比較してみましょう。
組み込み関数 clear()
を使用すると、次のようになります。
dict1 = {"name": "John", "age": 23}
dict2 = dict1
dict1.clear()
print("After using clear()")
print("Dictionary 1 contains :", dict1)
print("Dictionary 2 contains :", dict2)
出力:
After using clear()
Dictionary 1 contains : {}
Dictionary 2 contains : {}
ご覧のとおり、dict1
と dict2
は空になっています。
辞書を {}
に割り当てる:
dict1 = {"name": "John", "age": 23}
dict2 = dict1
# Assign {} removes only dict1 contents
dict1 = {}
print("After assigning {}")
print("Dictionary 1 contains :", dict1)
print("Dictionary 2 contains :", dict2)
出力:
After assigning {}
Dictionary 1 contains : {}
Dictionary 2 contains : {'name': 'John', 'age': 23}
上記の例では、dict1 = {}
が新しい空の辞書を作成しましたが、dict2
は dict1
の古い値を指しているため、dict2
値の値は変更されません。この場合、ディクショナリを参照する別の変数がまだあるため、ガベージコレクションはトリガーされません。
要約すると、{}
を使用してディクショナリのすべてのコンテンツをクリアすると、既存のディクショナリ参照を更新する代わりに、新しいインスタンスが作成されます。同じ辞書を参照する別の名前がある場合は、clear()
関数を使用して、同じインスタンスへのすべての参照もクリアすることをお勧めします。