清單與元組 python 新手教學#4 | seansie blog
2024/7/21 第二次編輯
清單
在python中,有一個資料形態是 list
,是一個物件,由數個元素組成。#
範例
我的飲料 = ["珍珠", "鮮奶" ,"半糖" ,"去冰"]
外送清單 = [['青茶', '綠茶', '仙草', '正常冰'],
['少冰', '紅豆', '綠豆', '熱飲'],
['寒天', '熱飲', '青茶', '綠茶'],
['微糖', '紅茶', '紅豆', '愛玉'],
['紅豆', '青茶', '椰果', '正常冰']]
這個例子說明了清單的用法,其中我的飲料是基本的用法,裏面存放了數個飲料內容物的字串(物件),然後外送清單是進階用法,名稱是巢狀清單,在這個例子中外送清單中裏面還有清單,雖然可能有人會覺得很奇怪,但是這個用法也是被python允許的。
- 裏面可以包含任何物件,包括自己(列表),重複物件。
- 第一個物件的索引值(又稱元素編號等等)爲
0
其他以此類推,第n個的索引爲n-1
,與大多數程式語言 陣列 這個物件的用法相同。
arr= [ "a", "b" ,"c" ]
print(arr[0])
print(arr[1])
print(arr[2])
執行結果
a
b
c
存取
即 清單名稱[元素編號,又稱索引值]
,例如 print([0]
)
修改
直接修改指定元素:跟修改變數一樣,只是要加上索引,例如 a[0]=12 等等。
應用
應用
在python的 list
物件中有許多方便的函數可以提供更便利的操作,以下皆會提供一個範例。
PS:因爲一個程式可以有很多清單,所以要告訴電腦你打算要對那個清單操作,
用法是 清單名字.下列函數
,其它依此類推,對於函數名稱在第一次提到時會統一冠上 list
前綴,以表示是 list
物件的從屬函數,接著第二次提到時會酌情省略。
e.g 針對 arr
清單做 append
的操作,就要寫成arr.append()
的樣子。
爲求簡潔,若沒有特別說明,則視爲用arr
清單作爲例子,而且程式碼會省略清單宣告(如下)的部分。
arr=[1,2,3,4,5]
新增元素
-
list.append()
:顧名思義,就是增補,白話就是在清單後面新增元素,用法爲
arr.append(你要新增的元素)
舉例來說,執行
arr.append(6)
後,arr
變成了[1, 2, 3, 4, 5, 6]
-
list.extend()
:與
append()
,大同小異,差別是若引數是序列物件的時候,append()
會直接將整個物件作爲一個元素放進去清單中,導致該清單變成巢狀清單,而extend()
函數會先將該物件拆解爲元素再一一放入清單。舉例來說,如果把
[-1,-2]
分別用append
還有extend
函式放入,則用append
方式的結果是arr
陣列會變成[1, 2, 3, 4, 5, [-1, -2]]
也就是直接將[-1,-2]
視爲 一個元素.反之用
extend
的話會變成[1, 2, 3, 4, 5, -1, -2]
,因爲[-1,-2]
會被系統拆解成數個元素,再一一放入,因此才會變成這樣。 -
list.insert()
:顧名思義,就是插入,其實可以視爲
append
的加強版,因爲可以指定新增元素的位置。引數格式爲
(索引值,要插入的元素)
,所謂插入是新增的元素會取代該索引值(引數)的元素,而其他受影響的元素索引值會順延一格。舉個例子, 執行完
arr.insert(1,True)
之後,arr變成了[1, True, 2, 3, 4, 5]
移除元素
-
list.pop()
:即彈出元素,白話來說就是刪除指定索引值(引數)的元素。引數格式爲想要刪除的元素索引值,順帶一提,此函數執行完會回傳被刪除的元素內容。
舉例來說,執行完
arr.pop(0)
之後,arr 變成了[2, 3, 4, 5]
-
list.clear()
:將清單的所有元素清除的意思執行
arr.clear()
之後,arr
變成[]
存取元素
-
list.copy()
:回傳一個複製的新清單。例如執行
print(arr.copy())
後,螢幕上會出現[1, 2, 3, 4, 5]
,即arr
陣列的副本 -
list.index()
:回傳引數所在的索引值,如果沒找到,就會回傳
ValueError
錯誤,詳情可以看本人寫的 例外處理 的文章。例如執行
arr.index(1)
後,就會回傳0
,因爲1
這個元素在arr
清單中的索引值是0
。
特殊操作
list.reverse()
:顧名思義,就是反轉,會修改arr
清單,讓他裏面的內容反轉。
舉例來說,若執行arr.reverse()
,arr
會被修改成 [5, 4, 3, 2, 1]
。
list.sort()
:顧名思義,就是排序,因爲arr
這個例子已經被排序了,所以在此函數的示範中,我會再宣告一個新清單,如下程式碼所示。
li=[5,8,7,9,6,4,1,2,3]
舉例來說,若執行li.reverse()
,li
會被修改成 [1, 2, 3, 4, 5, 6, 7, 8, 9]
。
元組
一言以蔽之,就是無法修改的清單,其他與清單都大同小異。
Reference
https://www.w3schools.com/python/python_lists.asp
https://builtin.com/data-science/python-list
https://www.w3schools.com/python/ref_list_index.asp
https://www.runoob.com/python3/python3-att-list-copy.html
https://sean22492249.medium.com/python-list-的-extend-append-的差別-5dd4a585aafe
https://www.programiz.com/python-programming/methods/list/index