回答編集履歴

2

追記

2018/06/01 14:11

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -25,6 +25,76 @@
25
25
  ```
26
26
 
27
27
  [[2, 0], [2, 1], [1, 0]]
28
+
29
+ ```
30
+
31
+
32
+
33
+ 元のコードがうまくいかない理由
34
+
35
+ ---
36
+
37
+ 実際に試してみると面白いです。
38
+
39
+ ```Python
40
+
41
+ #
42
+
43
+ lst = [1, 2, 3, 4, 5]
44
+
45
+ for elem in lst:
46
+
47
+ print(elem)
48
+
49
+ lst.remove(elem)
50
+
51
+
52
+
53
+ print(lst)
54
+
55
+
56
+
57
+ #
58
+
59
+ lst = [1, 2, 3, 4, 5]
60
+
61
+ for elem in lst[:]:
62
+
63
+ print(elem)
64
+
65
+ lst.remove(elem)
66
+
67
+
68
+
69
+ print(lst)
70
+
71
+ ```
72
+
73
+
74
+
75
+ **実行結果** [Wandbox](https://wandbox.org/permlink/Rw7rLGXYejjcPqEb)
76
+
77
+ ```
78
+
79
+ 1
80
+
81
+ 3
82
+
83
+ 5
84
+
85
+ [2, 4]
86
+
87
+ 1
88
+
89
+ 2
90
+
91
+ 3
92
+
93
+ 4
94
+
95
+ 5
96
+
97
+ []
28
98
 
29
99
  ```
30
100
 

1

追記

2018/06/01 14:10

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -27,3 +27,37 @@
27
27
  [[2, 0], [2, 1], [1, 0]]
28
28
 
29
29
  ```
30
+
31
+
32
+
33
+ ただし
34
+
35
+ ---
36
+
37
+ 今回は『排除する条件』より『排除しない条件』の方が書きやすそうです。
38
+
39
+ ついでにリスト内包表記も利用してみます。
40
+
41
+ ```Python
42
+
43
+ ls = [[2, 0], [2, -1], [4, 0], [2, 1], [1, 0]]
44
+
45
+ ls = [
46
+
47
+ row for row in ls
48
+
49
+ if 0 <= row[0] < 3
50
+
51
+ if 0 <= row[1] < 5
52
+
53
+ ]
54
+
55
+
56
+
57
+ print(ls)
58
+
59
+ ```
60
+
61
+
62
+
63
+ [Wandbox](https://wandbox.org/permlink/DBs3g2YODGUYADRp)