回答編集履歴
1
コメントを受けて追記
answer
CHANGED
@@ -8,4 +8,27 @@
|
|
8
8
|
# 前半は省略
|
9
9
|
ret = odd_digits_vals + (even_digits_vals * 3)
|
10
10
|
return (0, 9, 8, 7, 6, 5, 4, 3, 2, 1)[ret % 10]
|
11
|
+
```
|
12
|
+
|
13
|
+
---
|
14
|
+
以下はコメントを受けての追記です。
|
15
|
+
|
16
|
+
pythonではリストやタプルのようなシーケンス型のオブジェクトの後ろに[i]のように大括弧を書くことで(最初の要素を0番目として)i番目の要素を指すことができます。よって、以下のように書くことでretの下1桁の値に応じて狙った値をreturnすることができます。
|
17
|
+
|retの下1桁の値|returnされる値|
|
18
|
+
|:--|:--:|
|
19
|
+
|0|0|
|
20
|
+
|1|9|
|
21
|
+
|2|8|
|
22
|
+
|...|...|
|
23
|
+
|9|1|
|
24
|
+
|
25
|
+
|
26
|
+
```python
|
27
|
+
table = (0, 9, 8, 7, 6, 5, 4, 3, 2, 1)
|
28
|
+
return table[ret % 10]
|
29
|
+
|
30
|
+
```
|
31
|
+
上の2行をさらにまとめると、以下の1行になります。
|
32
|
+
```python
|
33
|
+
return (0, 9, 8, 7, 6, 5, 4, 3, 2, 1)[ret % 10]
|
11
34
|
```
|