Python程式設計中可能要遇到的坑
阿新 • • 發佈:2020-12-22
一、迴圈新增
lst = [1,2,3,4,5,6]
for i in lst:
lst.append(7) /這樣寫法就會一直持續新增7,因為每新增一個,列表都會多一個元素,就會一直迴圈下去一直加7
print(lst)
二、列表迴圈刪除錯誤例項
li = [11, 22, 33, 44]
for e in li: /直接從列表中迴圈
li.remove(e)
print(li)
結果:
for的運⾏過程. 會有⼀個指標來記錄當前迴圈的元素是哪⼀個, ⼀開始這個指標指向第0 個.
然後獲取到第0個元素. 緊接著刪除第0個. 這個時候. 原來是第⼀個的元素會⾃動的變成 第0個.
用 del 或remove 會報錯,用 pop 會剩下 11和22,也不行
那怎樣才可以哪?
方法一:
li = [11, 22, 33, 44]
for i in range(len(li)):
li.pop()
print(li)
方法二:
li = [1,2,3,4]
lst = li[:]
for i in lst:
li.remove(i)
print(li)
注意: 由於刪除元素會導致元素的索引改變, 所以容易出現問題. 儘量不要再迴圈中直接去刪除元素. 可以把要刪除的元素新增到另⼀個容器中然後再批量刪除.