回答編集履歴
1
別解
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
|
```
|