回答編集履歴

2

追記

2022/11/02 11:45

投稿

TakaiY
TakaiY

スコア12657

test CHANGED
@@ -4,3 +4,12 @@
4
4
  そういう場合は、結果用の新たなリストを用意しておいて、条件に合うものだけそのリストに追加するという方法を採るのがいいでしょう。
5
5
  また、今回のようにすでに存在するものかどうか判定するのであれば、出てきたものをsetに入れておいて in で判定するのがいいと思います。
6
6
 
7
+ 確認してませんが、こんな感じでしょう。
8
+ ```python
9
+ res_list = []
10
+ genba_list = set()
11
+ for dic in data:
12
+ if not dic['現場名'] in genba_list:
13
+ res_list.append(dic)
14
+ genba_list.add(dic['現場名'])
15
+ ```

1

修正

2022/11/02 11:31

投稿

TakaiY
TakaiY

スコア12657

test CHANGED
@@ -1,5 +1,6 @@
1
1
  リストの内容でループしながら、そのリストそのものを変更(del)するのは筋が悪いです。
2
2
  要素を削除することで、インデックスの指すものが変ってしまうからです。
3
3
 
4
- そういう場合は、結果用の新たなリストを用意しておいて、条件に合うものだけそのリストに追加するという方法を採るのがいいでしょう。今回のようにすでに存在するものを判定するのであれば、それをsetに入れておいて判定に使うのがいいでしょう。
4
+ そういう場合は、結果用の新たなリストを用意しておいて、条件に合うものだけそのリストに追加するという方法を採るのがいいでしょう。
5
+ また、今回のようにすでに存在するものかどうか判定するのであれば、出てきたものをsetに入れておいて in で判定するのがいいと思います。
5
6