1. 程式人生 > >Python入門100個例項(25)——刪除列表元素

Python入門100個例項(25)——刪除列表元素

從本例項學到什麼

本例項講三種從列表中刪除元素的做法。
1. 用del語句刪除元素
2. 用列表物件的pop方法刪除元素
3. 用列表物件的remove方法刪除某個值

例項程式程式碼

#例3-2-2 刪除列表元素
# del語句刪除列表元素
motorcycles = ['honda', 'yamaha', 'suzuki', '宗申', '錢江']
print(motorcycles)
print("刪除第一個元素:")
del motorcycles[0]
print(motorcycles)
print("刪除第三個元素:")
del motorcycles[2]
print
(motorcycles) #del 'suzuki' #這樣寫是錯誤的。 #pop()方法刪除列表尾部元素 motorcycles = ['honda', 'yamaha', 'suzuki', '宗申', '錢江'] print("pop()方法刪除尾部元素。開始列表是:",motorcycles) print("第一次pop():") qj = motorcycles.pop() print(motorcycles) print("被刪除的元素:", qj) print("第二次pop():") zs = motorcycles.pop() print(motorcycles) print
("被刪除的元素:", zs) #pop(i)刪除第i+1個元素 motorcycles = ['honda', 'yamaha', 'suzuki', '宗申', '錢江'] print("pop(i)方法刪除第i+1個元素。一開始,列表是:",motorcycles) print("pop(0)之後:") honda = motorcycles.pop(0) print(motorcycles) print("被刪除的元素是:", honda) print("再pop(2)之後:") zs = motorcycles.pop(2) print(motorcycles) print("被刪除的元素是:"
, zs) #remove(value)刪除值為value的元素(只針對第一次匹配) motorcycles = ['honda', 'yamaha', 'suzuki', '宗申', '錢江', 'honda'] print("remove(v)方法刪除值為v的元素。一開始,列表是:", motorcycles) print("remove('honda')之後:") motorcycles.remove('honda') print(motorcycles)

執行例3-2-2,輸出以下內容:

[‘honda’, ‘yamaha’, ‘suzuki’, ‘宗申’, ‘錢江’]
刪除第一個元素:
[‘yamaha’, ‘suzuki’, ‘宗申’, ‘錢江’]
刪除第三個元素:
[‘yamaha’, ‘suzuki’, ‘錢江’]
pop()方法刪除尾部元素。開始列表是: [‘honda’, ‘yamaha’, ‘suzuki’, ‘宗申’, ‘錢江’]
第一次pop():
[‘honda’, ‘yamaha’, ‘suzuki’, ‘宗申’]
被刪除的元素: 錢江
第二次pop():
[‘honda’, ‘yamaha’, ‘suzuki’]
被刪除的元素: 宗申
pop(i)方法刪除第i+1個元素。一開始,列表是: [‘honda’, ‘yamaha’, ‘suzuki’, ‘宗申’, ‘錢江’]
pop(0)之後:
[‘yamaha’, ‘suzuki’, ‘宗申’, ‘錢江’]
被刪除的元素是: honda
再pop(2)之後:
[‘yamaha’, ‘suzuki’, ‘錢江’]
被刪除的元素是: 宗申
remove(v)方法刪除值為v的元素。一開始,列表是: [‘honda’, ‘yamaha’, ‘suzuki’, ‘宗申’, ‘錢江’, ‘honda’]
remove(‘honda’)之後:
[‘yamaha’, ‘suzuki’, ‘宗申’, ‘錢江’, ‘honda’]

用del語句刪除元素

del語句的寫法是: del 列表名[下標] 。
比如:
1. 例3-2-2中第6行刪除了motorcycles列表的第1個元素。寫法是: del motorcycles[0] 。
2. 接著,第9行刪除了motorcycles列表的第3個元素。刪除的是值為’宗申’的元素。

用列表物件的pop方法刪除元素

pop方法有兩種用法。第一種是不帶引數,寫法如motorcycles.pop()。第二種是帶引數,寫法如motorcycles.pop(2)。

第一種用法的作用是刪除列表尾部元素。
1. 例3-2-2第18行,程式碼是:qj = motorcycles.pop()。首先執行pop方法,從motorcycles列表去除尾部元素,並返回所刪除的元素,即值為’錢江’的元素;接著,把值為’錢江’的字串賦值給qj變數。
2. 第22行,程式碼是:zs = motorcycles.pop()。這一次刪除並返回的是值為’宗申’的元素。

第二種用法的作用是刪除指定下標的元素。
1. 第30行,程式碼是: honda = motorcycles.pop(0)。首先執行pop方法,傳入引數0,作用是刪除並返回下標為0的元素,即motorcycles列表的第1個元素。該元素的值是’honda’。接著,honda變數賦值為’honda’。
2. 第34行,程式碼是: zs = motorcycles.pop(2)。首先執行pop方法,傳入引數2,作用是刪除並返回下標為2的元素,即值為’宗申’的元素。接著,zs變數賦值為’宗申’。要注意到,第30行程式碼先刪除了一個元素,第34行程式碼再刪除一個元素。

用列表物件的remove方法刪除某個值

有沒有注意到,remove方法刪除的是某個值,不是某個元素。remove方法的用法如:motorcycles.remove(‘honda’) 。傳入的引數是值。格式是:列表物件.remove(v)。作用是刪除值為v的元素。要注意,若值為v的元素有多個,那麼只會刪除最左側的那一個。

例3-2-2中,
1. 第39行程式碼,motorcycles列表中有兩個值為’honda’的元素,分別是第一個和最後一個元素。
2. 第42行,程式碼是:motorcycles.remove(‘honda’),作用是刪除’honda’的第一次出現。觀察第43行產生的輸出,你可以看到最後一個元素沒有被刪除。

小結

  1. 寫法:del 列表名[i]。作用:刪除下標為i的元素。
  2. 寫法:列表名.pop()。作用:刪除並返回列表尾部的元素。
  3. 寫法:列表名.pop(i)。作用:刪除並返回下標為i的元素。
  4. 寫法:列表名.remove(v)。作用:刪除列表中值為v的元素。要注意,若值為v的元素有多個,那麼只會刪除最左側的那一個。