Pythonで辞書のすべての要素を削除する方法をわかりやすく解説
Pythonで辞書(dict)からすべての要素を削除するには、いくつかの方法があります。最もシンプルなのは、辞書変数を空の辞書として再代入する方法です。
空の辞書を再代入する方法
my_dict = {'name': 'foo', 'age': 28}
my_dict = {}
print(my_dict)出力
実行結果は以下のとおりです。
{}この方法では新しい空の辞書オブジェクトが作成されるため、元の辞書を別の変数が参照している場合、その変数側には古いデータが残ったままになります。すべての参照先からも要素を消したい場合は、次に紹介する clear() メソッドを使うのがおすすめです。
clear()メソッドを使う方法
my_dict = {'name': 'foo', 'age': 28}
my_dict.clear()
print(my_dict)clear() は辞書オブジェクトそのものの中身を空にするため、同じオブジェクトを参照しているすべての変数に反映されます。辞書を初期化したい場面では最も標準的な手法です。
del文でキーを1つずつ削除する方法
また、del 文を使えば特定のキーだけを削除できます。すべてのキーを対象にする場合は、キーの一覧を取得してループ処理しながら順番に削除することも可能です。
my_dict = {'name': 'foo', 'age': 28}
keys = list(my_dict.keys())
for key in keys:
del my_dict[key]
print(my_dict)出力
実行結果は以下のとおりです。
{}なお、ループ中に辞書自体に対して直接 del を実行すると「RuntimeError: dictionary changed size during iteration」が発生します。そのため、あらかじめ list() でキーのリストをコピーしてからループする点に注意してください。
まとめ
- 単純に変数を空にしたいなら、
my_dict = {}の再代入が手軽 - 他の変数と共有している辞書も空にしたいなら、
clear()メソッドが安全 - 個別のキーを削除したい場合は
del文を使用
用途に応じてこれらの方法を使い分けることで、辞書操作をより効率的に行えます。
-
Pythonで辞書のすべての値を取得・出力する方法
Pythonの辞書(dict)オブジェクトには、すべての値を簡単に取得できるvalues()メソッドが標準で用意されています。このメソッドを呼び出すと、辞書に格納された全ての値が dict_values オブジェクトとして返されます。values()メソッドを使う基本的な方法以下の例では、辞書 D1 のすべての値を values() メソッドで取得しています。戻り値はビューオブジェクトのため、リストとして扱いたい場合は list() 関数で変換すると便利です。>>> D1 = {1:a, 2:b, 3:c} >>> D1.values() dict_valu
-
Pythonでディレクトリ内の全ファイルに再帰的にtouch(タイムスタンプ更新)する方法
ディレクトリツリー内のすべてのファイルに再帰的にtouch(アクセス時刻・更新時刻の更新)を行いたい場合は、os.walkを使ってディレクトリを順にたどり、見つかった各ファイルに対してos.utime(ファイルパス)を実行します。os.walkとos.utimeを使った基本的な例import os # ディレクトリツリーを再帰的に走査 for root, dirs, files in os.walk(path): for file in files: # タイムスタンプを現在時刻に更新 os.utime(os.path.join(root, file))