Python中remove,pop,del的區別

來源:互聯網
上載者:User

標籤:most   dex   mos   開始   用法   font   ===   erro   class   

先上題:寫出最終列印的結果

a = [1, 2, 3, 4]for x in a:    a.remove(x)print(a)print("=" * 20)b = [1, 2, 3, 4]for i in b:    b.pop()print(b)print("=" * 20)c = [1, 2, 3, 4]for i in range(len(c)):    del c[0]print(c)

  一開始一看應該都是[ ]吧??

在機器上跑了一下:

[2, 4]
====================
[1, 2]
====================
[ ]

得到的結果如上,是不是很吃驚!!

首先要弄明白remove,pop,del三者的區別

1.用remove("")方法刪除指定元素,沒有該元素時報錯.

>>> number = [1,3,2,3,4]>>> number.remove(3)>>> print(number)[1, 2, 3, 4]>>> number.remove(5)Traceback (most recent call last):  File "<stdin>", line 1, in <module>ValueError: list.remove(x): x not in list

2.利用del[索引數] 函數刪除指定索引數的元素

>>> number = [‘a‘,‘c‘,‘d‘]>>> del number[1] #刪除指定索引數的元素>>> print(number)[‘a‘, ‘d‘]

3.利用pop()方法彈出元素,當()內無索引數時預設彈出最後一個元素

>>> number = [1,2,30,0]>>> number.pop() #無索引彈出最後一個元素0>>> number.pop(1) #彈出索引為1的元素2>>> print(number)[1, 30]

  以上是三者的用法,需要注意的是:del是python語句,而不是列表方法,無法通過list來調用

對列表a看一下迴圈的索引的變化

 

a = [1, 2, 3, 4]for index, x in enumerate(a):    print("索引是{},去刪除的值是{},列表的長度是{}".format(index, x, len(a)))    a.remove(x)    print("=" * 20)print(a)結果如下:索引是0,去刪除的值是1,列表的長度是4====================索引是1,去刪除的值是3,列表的長度是3====================[2, 4]

 

  列表的長度在變化,索引值也在變化。這個是容易忽視的一個點,原因是for迴圈的對象是一個可迭代的對象。

 

Python中remove,pop,del的區別

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.