質問編集履歴

1

コードにコメントを追加して読みやすくしました。

2021/12/28 09:05

投稿

Ralutet
Ralutet

スコア0

test CHANGED
File without changes
test CHANGED
@@ -36,27 +36,27 @@
36
36
 
37
37
  import numpy as np
38
38
 
39
- lst = np.array([[0,1,3,3,0],[1,0,3,0,0],[1,0,3,3,0],[1,3,3,0,0],[1,3,0,0,0]])
39
+ lst = np.array([[0,1,3,3,0],[1,0,3,0,0],[1,0,3,3,0],[1,3,3,0,0],[1,3,0,0,0]])#質問の一番上に書いてる配列と同じ
40
-
40
+
41
- lst2 = np.zeros((10,3))
41
+ lst2 = np.zeros((10,3))#後に、質問の上から二番目に書いてる配列と同じになる
42
-
42
+
43
- for i in range(len(lst)):
43
+ for i in range(len(lst)):#0つ目から試す(3にする前のもの)
44
44
 
45
45
  lst2_temp = []
46
46
 
47
- for j in range(len(lst)):
47
+ for j in range(len(lst)):#0つ目から試す(3にした後のもの)
48
-
48
+
49
- if int(np.count_nonzero(lst[j] > 0)) - int(np.count_nonzero(lst[i] > 0)) == 1:
49
+ if int(np.count_nonzero(lst[j] > 0)) - int(np.count_nonzero(lst[i] > 0)) == 1:#それらの配列の0の数が一つ違う = 3が一つ増えた
50
-
50
+
51
- if np.count_nonzero(np.logical_and(lst[j]-lst[i] != 3, lst[j]-lst[i] != 0)) == 0:
51
+ if np.count_nonzero(np.logical_and(lst[j]-lst[i] != 3, lst[j]-lst[i] != 0)) == 0:#それらの配列の差をとったときに、3でも0でもないところがない = 3が一つ増えた以外の変化はない
52
-
52
+
53
- lst2_temp.append(j)
53
+ lst2_temp.append(j) #3にしたあとのものの番号を記録する
54
-
54
+
55
- for j in range(len(lst2[0])-len(lst2_temp)):
55
+ for j in range(len(lst2[0])-len(lst2_temp)):#リストの長さを3に調整するためのもの
56
56
 
57
57
  lst2_temp.append(0)
58
58
 
59
- lst2[i] = np.array(lst2_temp)
59
+ lst2[i] = np.array(lst2_temp)#これで、質問の上から二番目に書いてる配列と同じになる
60
60
 
61
61
  ```
62
62
 
@@ -70,13 +70,13 @@
70
70
 
71
71
  import numpy as np
72
72
 
73
- lst = np.array([[0,1,3,3,0],[1,0,3,0,0],[1,0,3,3,0],[1,3,3,0,0],[1,3,0,0,0]])
73
+ lst = np.array([[0,1,3,3,0],[1,0,3,0,0],[1,0,3,3,0],[1,3,3,0,0],[1,3,0,0,0]])#質問の一番上に書いてる配列と同じ
74
-
74
+
75
- lst2 = np.zeros((10,3))
75
+ lst2 = np.zeros((10,3))#後に、質問の上から二番目に書いてる配列と同じになる
76
76
 
77
77
  print(lst)
78
78
 
79
- for i in range(len(lst)):
79
+ for i in range(len(lst)):#0つ目から試す(3にする前のもの)
80
80
 
81
81
  lst2_temp = []
82
82
 
@@ -84,7 +84,7 @@
84
84
 
85
85
  print("i:",lst[i])
86
86
 
87
- for j in range(len(lst)):
87
+ for j in range(len(lst)):#0つ目から試す(3にした後のもの)
88
88
 
89
89
  print("j:",lst[j])
90
90
 
@@ -92,23 +92,23 @@
92
92
 
93
93
  print("j_num:",np.count_nonzero(lst[j] > 0))
94
94
 
95
- if int(np.count_nonzero(lst[j] > 0)) - int(np.count_nonzero(lst[i] > 0)) == 1:
95
+ if int(np.count_nonzero(lst[j] > 0)) - int(np.count_nonzero(lst[i] > 0)) == 1:#それらの配列の0の数が一つ違う = 3が一つ増えた
96
96
 
97
97
  print(lst[j]-lst[i])
98
98
 
99
- if np.count_nonzero(np.logical_and(lst[j]-lst[i] != 3, lst[j]-lst[i] != 0)) == 0:
99
+ if np.count_nonzero(np.logical_and(lst[j]-lst[i] != 3, lst[j]-lst[i] != 0)) == 0:#それらの配列の差をとったときに、3でも0でもないところがない = 3が一つ増えた以外の変化はない
100
100
 
101
101
  print(j)
102
102
 
103
- lst2_temp.append(j)
103
+ lst2_temp.append(j)#3にしたあとのものの番号を記録する
104
-
104
+
105
- for j in range(len(lst2[0])-len(lst2_temp)):
105
+ for j in range(len(lst2[0])-len(lst2_temp)):#リストの長さを3に調整するためのもの
106
106
 
107
107
  lst2_temp.append(0)
108
108
 
109
109
  print("lst2_temp:",lst2_temp)
110
110
 
111
- lst2[i] = np.array(lst2_temp)
111
+ lst2[i] = np.array(lst2_temp)#これで、質問の上から二番目に書いてる配列と同じになる
112
112
 
113
113
  print(lst2)
114
114