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

回答編集履歴

1

d

2019/01/30 05:06

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -1,14 +1,13 @@
1
- 一番外側の行または列を判定したい場合
1
+ 一番外側の行、列または真ん中のかどうかを判定するに以下のようにするべきではないでしょうか?
2
+ ```python
3
+ is_edge = i == 0 or \ # 1行目
4
+ i == len(arr) - 1 \ # 最後の行
5
+ or j == 0 \ # 1列目
6
+ or j == len(row) - 1 \ # 最後の列
7
+ or j == len(row) // 2 # 真ん中の列
2
8
  ```
3
- i == 0 or i == len(arr) - 1 or j == 0 or j == len(row) - 1
4
- ```
5
9
 
6
- とするべきではないでしょうか。
7
- ```
8
- i == 0 (1行目) or i == len(arr) - 1 (n行目) or j == 0 (1列目) or j == len(row) - 1 (m列目)
9
- ```
10
10
 
11
-
12
11
  ```python
13
12
  arr = [["道" for i in range(19)] for j in range(10)]
14
13
  arr[4][9] = "核"
@@ -19,7 +18,13 @@
19
18
 
20
19
  for i, row in enumerate(arr):
21
20
  for j, area in enumerate(row):
21
+ is_edge = i == 0 or \ # 1行目
22
+ i == len(arr) - 1 \ # 最後の行
23
+ or j == 0 \ # 1列目
24
+ or j == len(row) - 1 \ # 最後の列
25
+ or j == len(row) // 2 # 真ん中の列
26
+
22
- if (i == 0 or i == len(arr) - 1 or j == 0 or j == len(row) - 1) and area == "道":
27
+ if is_edge and area == "道":
23
28
  print("+", end="")
24
29
  else:
25
30
  print(area, end="")
@@ -28,13 +33,13 @@
28
33
 
29
34
  ```
30
35
  隅+++++++++++++++++隅
31
- +道道道道道道道道道道道道道道道道
36
+ +道道道道道道道道道道道道道道道道+
32
- +道道道道道道道道道道道道道道道道
37
+ +道道道道道道道道道道道道道道道道+
33
- +道道道道道道道道道道道道道道道道
38
+ +道道道道道道道道道道道道道道道道+
34
39
  +道道道道道道道道核道道道道道道道道+
35
- +道道道道道道道道道道道道道道道道
40
+ +道道道道道道道道道道道道道道道道+
36
- +道道道道道道道道道道道道道道道道
41
+ +道道道道道道道道道道道道道道道道+
37
- +道道道道道道道道道道道道道道道道
42
+ +道道道道道道道道道道道道道道道道+
38
- +道道道道道道道道道道道道道道道道
43
+ +道道道道道道道道道道道道道道道道+
39
44
  隅+++++++++++++++++隅
40
45
  ```