回答編集履歴

1

追記

2023/01/13 03:27

投稿

退会済みユーザー
test CHANGED
@@ -55,3 +55,19 @@
55
55
  print(result) # => [{'id': 1, 'fruits': 'apple', 'cd': [1, 2, 4]}, {'id': 2, 'fruits': 'banana', 'cd': [5]}, {'id': 3, 'fruits': 'grape', 'cd': [3, 6, 7]}]
56
56
  ```
57
57
 
58
+ ### 追記
59
+
60
+ `result`の要素を作るためにreduceは不要でした。以下でも目的のリストを得られます。
61
+ ```python
62
+ from itertools import groupby
63
+
64
+
65
+ result = [
66
+ {'id': k[0], 'fruits': k[1], 'cd': [e['cd'] for e in group]}
67
+ for k, group
68
+ in groupby(data, lambda e: (e['id'], e['fruits']))
69
+ ]
70
+ ```
71
+
72
+
73
+