Pythonプログラム:辞書のリストから特定の値を持つ辞書を削除する方法
辞書のリストの中から、キーに対する値が特定の条件に一致する要素を削除したいケースは、データ処理の場面でよく見られます。Pythonでは、単純な反復処理(イテレーション)と del 演算子、さらに break 文を組み合わせることで、この操作を簡単に実現できます。
サンプルコード
以下に具体的な実装例を示します。
my_list = [{"code" : 1, "fun" : "learn"},
{"code" : 2, "fun" : "code"},
{"code" : 3, "fun" : "test"},
{"code" : 4, "fun" : "teach"},
{"code" : 4, "fun" : "make"},
{"code" : 4, "fun" : "object"}]
print("The list of dictionary is : ")
print(my_list)
for index in range(len(my_list)):
if my_list[index]['code'] == 3:
del my_list[index]
break
print("The resultant list is : ")
print(my_list)
実行結果
The list of dictionary is :
[{'code': 1, 'fun': 'learn'}, {'code': 2, 'fun': 'code'}, {'code': 3, 'fun': 'test'}, {'code': 4, 'fun': 'teach'},
{'code': 4, 'fun': 'make'}, {'code': 4, 'fun': 'object'}]
The resultant list is :
[{'code': 1, 'fun': 'learn'}, {'code': 2, 'fun': 'code'}, {'code': 4, 'fun': 'teach'}, {'code': 4, 'fun': 'make'},
{'code': 4, 'fun': 'object'}]
処理の流れ
- まず、複数の辞書を要素として持つリストを定義し、その内容をコンソールに表示します。
- 続いて、
forループを使ってリストを先頭から順に走査し、各辞書の'code'キーの値が指定した整数(ここでは 3)と一致するかどうかを判定します。 - 条件に一致する要素が見つかった時点で、
del演算子によって該当インデックスの辞書をリストから削除し、break文でループを終了します。 - 最後に、削除処理が完了したリストをコンソールに出力して結果を確認します。
-
Pythonで二分探索木(BST)に特定の値が存在するかどうかを判定する方法
問題の概要二分探索木(BST:Binary Search Tree)と、探索対象となる値 val が与えられたとき、その値が木の中に存在するかどうかを判定するプログラムを作成します。例えば、次のような二分探索木があったとします。このとき val = 7 とすると、7は木の中に存在するため、出力は True になります。アルゴリズムの手順BSTの性質を利用すると、効率的に値を探索できます。手順は以下の通りです。関数 solve() を定義します。引数として root(現在のノード)と val を受け取ります。root が null(None)の場合は False を返します。root のデータが
-
Pythonでリストから重複要素を削除する方法を徹底解説
重複した要素を含むリストが与えられたとき、重複を取り除いた新しいリストを作成するのが本記事のテーマです。初心者の方にも理解しやすいよう、基本的なアルゴリズムの手順から実際のコードまで順を追って解説していきます。 実行例 入力::[2,3,4,3,4,6,78,90] 出力::[2,3,4,6,78,90] アルゴリズム 重複要素を削除するための基本的な手順は以下の通りです。 元となるリストを作成する。 空の新しいリストを用意する。 元のリストの各要素を先頭から順番に走査する。 その要素が新しいリストにまだ存在しないかどうかを判定する。 存在しない場合のみ、新しいリストへ要素を追加する。