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行產生的輸出,你可以看到最後一個元素沒有被刪除。
小結
- 寫法:del 列表名[i]。作用:刪除下標為i的元素。
- 寫法:列表名.pop()。作用:刪除並返回列表尾部的元素。
- 寫法:列表名.pop(i)。作用:刪除並返回下標為i的元素。
- 寫法:列表名.remove(v)。作用:刪除列表中值為v的元素。要注意,若值為v的元素有多個,那麼只會刪除最左側的那一個。