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

回答編集履歴

2

補足

2016/10/24 19:55

投稿

toritoritorina
toritoritorina

スコア972

answer CHANGED
@@ -19,8 +19,19 @@
19
19
  print(means_dict)
20
20
  ```
21
21
 
22
- ワンライナ
22
+ valuesは、内包表記を使わないと以下のようなルプになります。
23
23
  ```python
24
+ values = []
25
+ for key in keys:
26
+ number_list = []
27
+ for d in result:
28
+ number_list.append(d[key])
29
+ mean = statistics.mean(number_list)
30
+ values.append(mean)
31
+ ```
32
+
33
+ ワンライナーで書くと、以下のようになります。
34
+ ```python
24
35
  import statistics
25
36
  result = [{'kanji': 106, 'hiragana': 227, 'katakana': 25}, {'kanji': 56, 'hiragana': 188, 'katakana': 36}, {'kanji': 106, 'hiragana': 274, 'katakana': 8}]
26
37
  print({key: statistics.mean(d[key] for d in result) for key in result[0].keys()})

1

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

2016/10/24 19:54

投稿

toritoritorina
toritoritorina

スコア972

answer CHANGED
@@ -1,5 +1,7 @@
1
1
  こんな感じでどうですか。
2
2
  ```python
3
+ import statistics
4
+
3
5
  result = [
4
6
  {'kanji': 106, 'hiragana': 227, 'katakana': 25},
5
7
  {'kanji': 56, 'hiragana': 188, 'katakana': 36},
@@ -9,16 +11,17 @@
9
11
  # ['kanji', 'hiragana', 'katakana']
10
12
  keys = [key for key in result[0].keys()]
11
13
 
12
- # [89.33333333333333, 229.66666666666666, 23.0]
14
+ # [89.33333333333333, 229.66666666666666, 23]
13
- values = [sum(d[key] for d in result) / len(result) for key in keys]
15
+ values = [statistics.mean(d[key] for d in result) for key in keys]
14
16
 
15
- # {'hiragana': 229.66666666666666, 'kanji': 89.33333333333333, 'katakana': 23.0}
17
+ # {'hiragana': 229.66666666666666, 'kanji': 89.33333333333333, 'katakana': 23}
16
18
  means_dict = {key: value for key, value in zip(keys, values)}
17
19
  print(means_dict)
18
20
  ```
19
21
 
20
22
  ワンライナーで
21
23
  ```python
24
+ import statistics
22
25
  result = [{'kanji': 106, 'hiragana': 227, 'katakana': 25}, {'kanji': 56, 'hiragana': 188, 'katakana': 36}, {'kanji': 106, 'hiragana': 274, 'katakana': 8}]
23
- print({key: sum(d[key] for d in result) / len(result) for key in result[0].keys()})
26
+ print({key: statistics.mean(d[key] for d in result) for key in result[0].keys()})
24
27
  ```