回答編集履歴

2

追記

2023/01/13 02:11

投稿

TakaiY
TakaiY

スコア12765

test CHANGED
@@ -20,4 +20,26 @@
20
20
 
21
21
  listの変更が目的ということからか、変更後に不要な項目を削除するというロジックになっていますが、最初のループで新規のリストを作り必要であれば最後に置き換えるほうがわかりやすい処理になると思います。また、そうすることで、集計する時のロジックもすっきりしたものにできると思います。
22
22
 
23
+ ---
23
24
 
25
+ 追記
26
+
27
+ こんな感じで。 idをキーとした辞書を作る案は出ていて基本同じですが、 id と fruits のタプルをキーにして辞書を作ってみました。
28
+
29
+ ```python
30
+ result_dict = {}
31
+
32
+ for item in item_list:
33
+ item_key = (item['id'], item['fruits'])
34
+ cd_list = result_dict.get(item_key, [])
35
+ cd_list.append(item['cd'])
36
+ result_dict[item_key] = cd_list
37
+
38
+ new_list = []
39
+ for item in result_dict:
40
+ new_list.append({"id": item[0],
41
+ "fruits": item[1],
42
+ "cd": result_dict[item]}
43
+ )
44
+ ```
45
+

1

追記

2023/01/13 01:39

投稿

TakaiY
TakaiY

スコア12765

test CHANGED
@@ -12,3 +12,12 @@
12
12
  item["cd"] = cd_1 # ★これを追加すればいいのではないかと
13
13
  j += 1
14
14
  ```
15
+
16
+ ----
17
+ いくつかコメントします。
18
+
19
+ listという変数は関数listと名前が衝突しますので、別の名前にしたすべきと思います。
20
+
21
+ listの変更が目的ということからか、変更後に不要な項目を削除するというロジックになっていますが、最初のループで新規のリストを作り必要であれば最後に置き換えるほうがわかりやすい処理になると思います。また、そうすることで、集計する時のロジックもすっきりしたものにできると思います。
22
+
23
+