也談python列表append和extend的區別

來源:互聯網
上載者:User

標籤:extend   append   

關於append和extend兩個方法,網上很多人說法如下: 

append() 方法向列表的尾部添加一個新的元素。只接受一個參數。

extend()方法只接受一個列表作為參數,並將該參數的每個元素都添加到原有的列表中。

但是,關於extend只接受一個列表作為參數這種說法,深表懷疑。舉個栗子:

extend>>>a= [1,2,3,4]>>> a.extend([‘a‘,‘b‘])>>> a[1, 2, 3, 4, ‘a‘, ‘b‘]append>>> a.append([‘a‘,‘b‘])>>> a[1, 2, 3, 4, ‘a‘, ‘b‘, [‘a‘, ‘b‘]]


ok,這樣我們追加了一個列表是沒有問題的,換個元組可以嗎?

append>>> a.append((1,2,3))>>> a[1, 2, 3, 4, ‘a‘, ‘b‘, [‘a‘, ‘b‘], (1, 2, 3)]>>> a.extend((4,5,6))>>> a[1, 2, 3, 4, ‘a‘, ‘b‘, [‘a‘, ‘b‘], (1, 2, 3), 4, 5, 6]


依然可以,元組也可以被extend接受,並且成功追加到list中,換字典呢?

extend>>> a.extend({1:‘a‘,2:‘b‘})>>> a[1, 2, 3, 4, ‘a‘, ‘b‘, [‘a‘, ‘b‘], (1, 2, 3), 4, 5, 6, 1, 2]append>>> a.append({7:‘c‘,5:‘d‘})>>> a[1, 2, 3, 4, ‘a‘, ‘b‘, [‘a‘, ‘b‘], (1, 2, 3), 4, 5, 6, 1, 2, {5: ‘d‘, 7: ‘c‘}]


這裡我們可以發現些許不同,extend的方式擴充列表參數為字典時,被追加到列表中的只有key,value並沒有被追加進去;但是使用append這種方式擴充時,將整個字典作為一個值追加到列表中了

ok,以上是可變對象,如果我們換成字串呢?

extend>>> a.extend(‘123456‘)>>> a[1, 2, 3, 4, ‘a‘, ‘b‘, [‘a‘, ‘b‘], (1, 2, 3), 4, 5, 6, 1, 2, {5: ‘d‘, 7: ‘c‘}, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘]append>>> a.append(‘123456‘)>>> a[1, 2, 3, 4, ‘a‘, ‘b‘, [‘a‘, ‘b‘], (1, 2, 3), 4, 5, 6, 1, 2, {5: ‘d‘, 7: ‘c‘}, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘123456‘]


也是可以的。

總結:

1、append和extend都可以接受各種類型資料,但是extend參數為字典時,只會追加key到列表中。

2、append和extend都只接受一個參數

3、append接受一個參數,追加到列表中在尾部只添加一個元素,也就是說你參數是什麼,列表中就追加成什麼。

4、extend接受一個參數,追加到列表中時是將參數中的每一個值都追加到列表中(字典例外)

附加help資訊

Help on built-in function extend:

extend(...) method of builtins.list instance

L.extend(iterable) -> None -- extend list by appending elements from the iterable

並沒有說extend的參數必須是列表。

從可迭代的元素追加延長列表

以上純屬個人實驗結果,如有大神有更好的解釋,請多多解答,謝謝!


本文出自 “風之別鶴” 部落格,謝絕轉載!

也談python列表append和extend的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.