在許多程式語言中,在迴圈中刪除串列(或陣列)中的元素,是一件蠻tricky的事。主要的原因是使用迴圈走訪串列時,你需要知道串列的大小,才能完成整個走訪的動作。但刪除元素會改變串列的大小,這會造成走訪的過程出錯。 在底下的程式碼中,迴圈會刪除串列中的偶數。但這樣的作法是錯的,因為元素刪除後,會造成 range(len( lst )): 這段判斷出錯,所以引發 index out of range 的問題。 lst = [1,2,4,8,13,16,19,22] for i in range(len(lst)): if lst[i] % 2 == 0: del lst[i] 那要怎麼辦呢?