close
python 的 list 有支援 remove
會讓人很直覺的,想要在 for x in list 裡,把符合的東西清光。
真的可以這樣嗎?
我後來發現了問題
你可以試著跑看看以下的程式
我只是想要把[1,2,3,4,5,6,7,8,9]比 4 小的元素去掉,
結果,搞得很複雜的樣子。
這是個 bug 嗎?
a = [1,2,3,4,5,6,7,8,9]
for i in a:
if i < 4:
del a[i]
print a
for i in a:
if i < 4:
del a[i]
print a
a = [1,2,3,4,5,6,7,8,9]
for i in a:
if i < 4:
a.remove(i)
print a
for i in a:
if i < 4:
a.remove(i)
print a
a = [1,2,3,4,5,6,7,8,9]
b = []
for i in a:
if i < 4:
b.append(i)
b = []
for i in a:
if i < 4:
b.append(i)
for i in b:
a.remove(i)
print a
a.remove(i)
print a
結果是
[1, 3, 4, 6, 7, 8, 9]
[2, 4, 5, 6, 7, 8, 9]
[4, 5, 6, 7, 8, 9]
[2, 4, 5, 6, 7, 8, 9]
[4, 5, 6, 7, 8, 9]
全站熱搜
留言列表