回答編集履歴

3

修正

2020/12/22 04:34

投稿

sfdust
sfdust

スコア1137

test CHANGED
@@ -106,14 +106,6 @@
106
106
 
107
107
  for k, v in answers.items():
108
108
 
109
- print("{0:<5} {1:>5.0f}%".format(k[0] if len(k) ==
110
-
111
- 1 else str(k[0])+"-"+str(k[-1]), v*100))
112
-
113
- def print_fmt(answers):
114
-
115
- for k, v in answers.items():
116
-
117
109
  print("{0:<5} {1:>5.1f}%".format(k[0] if len(k) ==
118
110
 
119
111
  1 else str(k[0])+"-"+str(k[-1]), v*100))

2

修正

2020/12/22 04:34

投稿

sfdust
sfdust

スコア1137

test CHANGED
@@ -1,8 +1,22 @@
1
1
  ```python
2
+
3
+ from itertools import groupby # <--追加。
4
+
5
+
2
6
 
3
7
  def cut(source):
4
8
 
9
+ # source内の要素が抜けている場合に対応。さらに連続数のグループに分割する。
10
+
11
+ fix_source = [tuple(map(lambda s: s[1], g)) for item in source for _, g in groupby(
12
+
13
+ enumerate(item), key=lambda x:x[0]-x[1])] # <--追加
14
+
15
+
16
+
17
+ # 先頭数の昇順で並び替える。
18
+
5
- sr = sorted(source, key=lambda x: x[0])
19
+ sr = sorted(fix_source, key=lambda x: x[0]) # <--修正
6
20
 
7
21
 
8
22
 
@@ -62,7 +76,9 @@
62
76
 
63
77
 
64
78
 
65
- def pred(source, piece):
79
+ def pred(source): #<----修正
80
+
81
+ piece = cut(source) #<----修正
66
82
 
67
83
  ans = {}
68
84
 
@@ -78,9 +94,13 @@
78
94
 
79
95
  return ans
80
96
 
81
-
97
+ ```
82
98
 
83
99
 
100
+
101
+
102
+
103
+ ```python
84
104
 
85
105
  def print_fmt(answers):
86
106
 
@@ -88,82 +108,42 @@
88
108
 
89
109
  print("{0:<5} {1:>5.0f}%".format(k[0] if len(k) ==
90
110
 
111
+ 1 else str(k[0])+"-"+str(k[-1]), v*100))
112
+
113
+ def print_fmt(answers):
114
+
115
+ for k, v in answers.items():
116
+
117
+ print("{0:<5} {1:>5.1f}%".format(k[0] if len(k) ==
118
+
91
119
  1 else str(k[0])+"-"+str(k[-1]), v*100))
120
+
121
+ print()
92
122
 
93
123
 
94
124
 
95
125
 
96
126
 
97
- A_CA = [(2, 3, 4, 5), (1, 2, 3, 4, 5)]
127
+ A_CA= [[1, 2, 4, 5], [3, 4, 5, 6, 7], [3, 4, 5, 8]]
98
128
 
99
- B_CA = [(1, 2, 3, 4), (2, 3, 4, 5)]
129
+ print_fmt(pred(A_CA)) #<----まとめて呼び出せるようにした
130
+
131
+ ```
100
132
 
101
133
 
102
134
 
103
- p = cut(A_CA)
135
+ 出力結果
104
-
105
- print_fmt(pred(A_CA, p))
106
-
107
-
108
-
109
- >> 1 50%
110
-
111
- >> 2-5 100%
112
-
113
-
114
-
115
-
116
-
117
- p = cut(B_CA)
118
-
119
- print_fmt(pred(B_CA, p))
120
-
121
-
122
-
123
- >> 1 50%
124
-
125
- >> 2-4 100%
126
-
127
- >> 5 50%
128
-
129
-
130
-
131
- p = cut(A_CA+B_CA)
132
-
133
- print_fmt(pred(A_CA + B_CA, p))
134
-
135
-
136
-
137
- >> 1 50%
138
-
139
- >> 2-4 100%
140
-
141
- >> 5 75%
142
-
143
-
144
-
145
-
146
-
147
- C_CA = [(10, 11, 12, 13), (3, 4, 5, 6, 7), (1, 2, 3, 4, 5), (12, 13, 14),(14, 15)]
148
-
149
- p = cut(C_CA)
150
-
151
- print_fmt(pred(C_CA, p))
152
-
153
-
154
-
155
- >> 1-2 20%
156
-
157
- >> 3-5 40%
158
-
159
- >> 6-7 20%
160
-
161
- >> 10-11 20%
162
-
163
- >> 12-13 40%
164
-
165
- >> 14 40%
166
-
167
- >> 15 20%
168
136
 
169
137
  ```
138
+
139
+ 1-2 33.3%
140
+
141
+ 3 66.7%
142
+
143
+ 4-5 100.0%
144
+
145
+ 6-7 33.3%
146
+
147
+ 8 33.3%
148
+
149
+ ```

1

2020/12/22 04:32

投稿

sfdust
sfdust

スコア1137

test CHANGED
@@ -110,8 +110,6 @@
110
110
 
111
111
  >> 2-5 100%
112
112
 
113
- >> 1 50%
114
-
115
113
 
116
114
 
117
115