回答編集履歴
2
補足
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を使うようにしました
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
|
14
|
+
# [89.33333333333333, 229.66666666666666, 23]
|
13
|
-
values = [
|
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
|
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:
|
26
|
+
print({key: statistics.mean(d[key] for d in result) for key in result[0].keys()})
|
24
27
|
```
|