【Python 學習筆記 】:list 的用法及常用函數
文章將介紹串列( 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:
number
在fruits
中 index 為 4- 而 1 在
number
中的 index 為 0 - 所以寫成 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( )
功能:沒有任何參數,直接刪除串列裡的所有元素,將串列清空
可以看到串列中的元素都被清空,而原本的串列已變為空串列。