回答編集履歴

2

補足

2016/10/24 19:55

投稿

toritoritorina
toritoritorina

スコア972

test CHANGED
@@ -40,7 +40,29 @@
40
40
 
41
41
 
42
42
 
43
+ valuesは、内包表記を使わないと以下のようなループになります。
44
+
45
+ ```python
46
+
47
+ values = []
48
+
49
+ for key in keys:
50
+
51
+ number_list = []
52
+
53
+ for d in result:
54
+
55
+ number_list.append(d[key])
56
+
57
+ mean = statistics.mean(number_list)
58
+
59
+ values.append(mean)
60
+
61
+ ```
62
+
63
+
64
+
43
- ワンライナーで
65
+ ワンライナーで書くと、以下のようになります。
44
66
 
45
67
  ```python
46
68
 

1

statistics\.meanを使うようにしました

2016/10/24 19:54

投稿

toritoritorina
toritoritorina

スコア972

test CHANGED
@@ -1,6 +1,10 @@
1
1
  こんな感じでどうですか。
2
2
 
3
3
  ```python
4
+
5
+ import statistics
6
+
7
+
4
8
 
5
9
  result = [
6
10
 
@@ -20,13 +24,13 @@
20
24
 
21
25
 
22
26
 
23
- # [89.33333333333333, 229.66666666666666, 23.0]
27
+ # [89.33333333333333, 229.66666666666666, 23]
24
28
 
25
- values = [sum(d[key] for d in result) / len(result) for key in keys]
29
+ values = [statistics.mean(d[key] for d in result) for key in keys]
26
30
 
27
31
 
28
32
 
29
- # {'hiragana': 229.66666666666666, 'kanji': 89.33333333333333, 'katakana': 23.0}
33
+ # {'hiragana': 229.66666666666666, 'kanji': 89.33333333333333, 'katakana': 23}
30
34
 
31
35
  means_dict = {key: value for key, value in zip(keys, values)}
32
36
 
@@ -40,8 +44,10 @@
40
44
 
41
45
  ```python
42
46
 
47
+ import statistics
48
+
43
49
  result = [{'kanji': 106, 'hiragana': 227, 'katakana': 25}, {'kanji': 56, 'hiragana': 188, 'katakana': 36}, {'kanji': 106, 'hiragana': 274, 'katakana': 8}]
44
50
 
45
- print({key: sum(d[key] for d in result) / len(result) for key in result[0].keys()})
51
+ print({key: statistics.mean(d[key] for d in result) for key in result[0].keys()})
46
52
 
47
53
  ```