回答編集履歴

1

別解

2017/11/16 14:08

投稿

YouheiSakurai
YouheiSakurai

スコア6142

test CHANGED
@@ -17,3 +17,25 @@
17
17
  print(wighted_avg(score, amount, 10))
18
18
 
19
19
  ```
20
+
21
+
22
+
23
+ 以下は別解。itertools祭り版。
24
+
25
+ ```python
26
+
27
+ from itertools import chain
28
+
29
+ from itertools import islice
30
+
31
+ from itertools import repeat
32
+
33
+
34
+
35
+ def wighted_avg(score, amount, top_n):
36
+
37
+ flatten = chain.from_iterable(map(repeat, score, amount))
38
+
39
+ return sum(islice(flatten, top_n)) / top_n
40
+
41
+ ```