2019年1月2日 星期三

[Python學習筆記] python串列(list)的學習(五):串列進階的操作,串列元素的刪除函數 del、pop、remove 使用方法

串列(list)是一種有序的資料結構,在工作上常常會需要將串列中的某些元素刪除,python 也提供三種方法來刪除串列元素:del、pop、remove,透過這些方法可以更加方便操作串列,使用方法及其功能差異整理如下:
(1) del 方法:del 方法可用來刪除串列某一元素、某些元素,語法如下:
   
語法(1):刪除串列某一元素,指定串列中的索引值,就可將該對應元素刪除

               del 串列變數名稱[串列索引值]

  範例1:刪除第3個元素值

               week = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六']
               del week[2]

               執行結果:week 的值為 ['星期日', '星期一', '星期三', '星期四', '星期五', '星期六']

語法(2):刪除串列連續元素值,指定起始索引值及結束索引值,就能刪除串列連續元素值
               
               del 串列變數名稱[起始索引值:結束索引值]  
  
               注意:刪除索引從起始索引值至(結束索引值-1)的元素值
           
  範例2:刪除第3個至第6個元素值

               number = [0,1,2,3,4,5,6,7,8,9,10]
               del number[2:6] 

               執行結果:number的值為 [0, 1, 6, 7, 8, 9, 10]

語法(3):刪除串列不連續的元素值,指定起始索引值、結束索引值及間隔值,就能刪除串列不連續元素值

               del 串列變數名稱[起始索引值:結束索引值:step]

  範例3:刪除第3個至第6個每隔2的元素值

               number = [0,1,2,3,4,5,6,7,8,9,10]
               del number[2:6:2]

               執行結果:number的值為 [0, 1, 3, 5, 6, 7, 8, 9, 10]

(2) pop方法:pop方法也是刪除某元素值,但有一功能就是刪除使會回傳被刪除的元素值

                     串列變數名稱.pop(串列索引值)
  
                     注意:如果串列索引值沒有指定就會刪除最後元素值
   
        範例4:刪除第3個元素值並回傳被刪除值

                     week = ['星期日','星期一', '星期二','星期三','星期四','星期五', '星期六']
                     day = week.pop(2)

        執行結果:week 的值為 ['星期日', '星期一', '星期三', '星期四', '星期五', '星期六']
                          day 的值為 '星期二'

(3)remove 方法:remove方法是刪除指定出現在第1 次的元素值

                            串列變數名稱.remove(欲刪除的元素值)

                            注意:重複的元素值只會刪除一個

               範例5:刪除數字為6的元素值

                            number = [0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9]
                            number.remove(6) #注意只會刪除一個6

               執行結果: number的值為 [0, 1, 2, 3, 4, 5, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

完整程式碼如下:
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Wed Jan  2 19:38:43 2019
  4. @author: 軟體罐頭
  5. """
  6. print('範例 1:刪除第3個元素值')
  7. week = ['星期日','星期一''星期二','星期三','星期四','星期五''星期六']
  8. print('week 刪除前 = ',week
  9. del week[2]
  10. print('week 刪除後 = ',week
  11. print()
  12. print('範例 2:刪除第3個至第6個元素值')
  13. number = [0,1,2,3,4,5,6,7,8,9,10]
  14. print('number 刪除前 = ',number
  15. del number[2:6]
  16. print('number 刪除後 = ',number
  17. print()
  18. print('範例 3:刪除第3個至第6個每隔2的元素值')
  19. number = [0,1,2,3,4,5,6,7,8,9,10]
  20. print('number 刪除前 = ',number
  21. del number[2:6:2]
  22. print('number 刪除後 = ',number
  23. print()
  24. print('範例 4:刪除第3個元素值並回傳被刪除值')
  25. week = ['星期日','星期一''星期二','星期三','星期四','星期五''星期六']
  26. print('week 刪除前 = ',week)
  27. day week.pop(2)
  28. print('week 刪除後 = ',week
  29. print('day 刪除後 = ',day
  30. print()
  31. print('範例 5:刪除數字為6的元素值')
  32. number = [0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9]
  33. print('number 刪除前 = ',number
  34. number.remove(6)
  35. print('number 刪除後 = ',number

執行結果如下: