teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

別解

2017/11/16 14:08

投稿

YouheiSakurai
YouheiSakurai

スコア6151

answer CHANGED
@@ -7,4 +7,15 @@
7
7
  score = [500, 400, 300, 200, 100, 50, 0]
8
8
  amount = [3, 8, 3, 5, 10, 3, 1]
9
9
  print(wighted_avg(score, amount, 10))
10
+ ```
11
+
12
+ 以下は別解。itertools祭り版。
13
+ ```python
14
+ from itertools import chain
15
+ from itertools import islice
16
+ from itertools import repeat
17
+
18
+ def wighted_avg(score, amount, top_n):
19
+ flatten = chain.from_iterable(map(repeat, score, amount))
20
+ return sum(islice(flatten, top_n)) / top_n
10
21
  ```