【Python 學習筆記 】:list 的用法及常用函數

瘋狂程式|Mad Coding
7 min readSep 10, 2021

--

Photo by Matthew Henry on Unsplash

文章將介紹串列( list ) 的用法及其常用函數,因為串列本身的內容較多,無法用一篇文章就涵蓋所有常用的函數,因此之後可能會再出第二篇,詳盡介紹更多串列的相關用法。那我們開始吧!

文章目錄

1. List

2. List 的常用函數-新增元素

3. List 的常用函數-刪除元素

參考文章

1. List 串列

如何建立串列

串列以中括號[ ]表示,括號裡的內容又以逗號分開。我們可以先嘗試建立一個簡單的串列,如以下舉例:

我簡單地建立一個名叫 fruits 的串列,裡面總共有四個項目,依序為:'apple','banana','guava','orange' ,而串列中的項目也可稱作為元素 ( element)

最後我將這個串列印出來,再利用 type( ) 函數印出fruits的型態,可以看到輸出顯示其形態為 list。

list( )

功能:可將非串列型態的資料,轉換成串列型態

舉例來說:

string原本的型態為字串,透過 list( ) 函數的轉換,使其形態變為串列。可以看到輸出的結果,字串內容 apple在轉換成串列時,其字母被逐一拆解。

取得 list 中的特定內容

如果我們只想取得 list 裡的某些內容,而不是印出整個 list ,只要在 list 名稱後加上中括號,並在括號內,寫下欲取出內容所對應的 index 就行了。

例如:

串列fruits有四個內容,所對應的 index 由左到右分別為 0123。輸入指定的 index 即可取出內容。

List of lists

除了字串及數字等常用資料型態,串列的元素,其資料型態也可以是串列,舉例來說:

我建立了一個 list 名稱為number ,我想將number寫在fruits中,並印出最後的結果。

值得注意的是 number雖然有五個元素,但在fruits中只佔了一個位置,index 為 4,我並沒有把它的元素一一拆開再寫入fruits

在這篇文章的第二部分,會再介紹該使用哪種函數,將串列中的元素一一插入至另一串列。

最後,如果元素的資料型態為串列,而我又想取得這個串列內的元素,方法和前面提到的一樣,只要後面再加上一個中括號[ ],裡面寫下對應的 index 就行了。

程式碼如下:

假如我要取得 number 中的元素 1:

  1. numberfruits中 index 為 4
  2. 而 1 在 number 中的 index 為 0
  3. 所以寫成 fruits[4][0],就可以成功印出

2. List 的常用函數-新增元素

這個章節將介紹三個函數,依序為 append( ), extend( )及 insert( )。

會將它們放在一起介紹,是因為這三個函數功能類似,都可以新增元素在串列中,但仍有些地方不一樣,時常造成混淆,需格外小心。

append( )

用法:append( object )

參數:

.object-可為數字、字串或串列

功能:將 object 加入到指定串列的最後面

Ex1:插入的元素型態為 list

沿用第一章 List of lists 的範例,目的一樣是把 number 插入 fruits 之中,程式碼改寫如下:

當然也可以不要這麼複雜,我們也可以單純地加入一個元素就好。

Ex2:插入的元素型態為 string

如上面的舉例,我想在 fruits串列中加入元素'pineapple' ,這時就可以利用 append( )函數,將其插入到串列中。

extend( )

用法:extend( iterable )

參數:

.iterable-可迭代物件,如字串、串列、range( 5 )…等

功能:將可迭代物件內的元素,一一拆解並加入到指定的串列內

我們把上面 append( ) 所用的舉例,全部改成 extend( ),看看會發生什麼事

Ex1:插入的元素型態為 list

和 append( )不同,可以看到串列number裡的元素被一一拆解,最後塞入fruits中。

上述程式碼也可用加號改寫:

Ex2:插入的元素型態為 string

同樣再將前面 append( )所用的舉例改成 extend( ):

可以發現使用 append( ) 時,'pineapple' 是一個單一元素,但使用 extend( ) 時,pineapple 每個字母,會被拆成一個個獨立的元素。

上述程式碼一樣可用加號改寫:

insert( )

用法:insert( index, element)

參數:

.index-代表插入的位置,第一位為 0,第二位為 1…由此類推

.element-欲插入的元素

功能:依據 index 的數值,將 element 插入到指定位置

我的目的是希望將字串 'pineapple' ,插入到串列 fruits 的第一位,寫法如第三行程式碼所示。

值得注意的是,若指定插入的 index 大於串列本身的 index,電腦預設會幫我們插入到最後一位,如第四行程式碼所示。

3. List 的常用函數-刪除元素

有新增元素的函數,當然也就有刪除元素的函數。接下來要介紹的方法,其功能十分類似,都可以移除串列中的元素,也因此我把它們擺在同個地方一起介紹。

remove( )

用法:remove ( object )

參數:

.object-可為數字、字串或串列

功能:將 object 從指定串列移除

我建立了一個串列名稱為 num ,並利用 remove( ) 函數,使串列中的元素刪除。特別注意括號內,輸入的是欲刪除內容,不是 index。

pop( )

用法:pop( index )

參數:

.index ( optional )-代表欲移除的位置,此參數可寫可不寫

功能:根據 index 的數值,將串列中對應的元素移除。若沒有指定 index,則預設移除最後一個元素

可以看到上面第四行程式碼,因為沒有指定 index,預設便移除掉串列最後一個元素。

del

用法:del list_name [ a : b ]

功能:和 python 的切片( slicing )規則一樣,將 index a 到 index b 所涵蓋的元素刪除。特別注意 index b 對應的元素仍會保留

備註:del 為 python 的關鍵字,並非串列的函數,但一樣可以刪除串列中的元素

我一樣隨意建立一個串列,第三行程式碼,代表我要刪除串列 num index 0 到 index 2 的元素。

如果欲刪除的 index 從 0 開始,可以簡略不寫,意即第三行程式碼,寫成 del num[0:3]del num[ :3] 意思相同。

也可以不加分號,只填寫欲刪除元素的 index,此時功能只有刪除單一元素,類似前面提到的 pop( ),而並非刪除一個範圍內所涵蓋的元素。

clear( )

用法:list_name.clear( )

功能:沒有任何參數,直接刪除串列裡的所有元素,將串列清空

可以看到串列中的元素都被清空,而原本的串列已變為空串列。

--

--

瘋狂程式|Mad Coding
瘋狂程式|Mad Coding

Written by 瘋狂程式|Mad Coding

Data Science | Machine Learning | Programming

No responses yet