串列 (list) 的字面常數 (literal) 為中括弧圍起來以逗號區隔的元素,每個元素可以是不同的資料型態 (data type) ,如果中括弧內沒有元素,就叫做空串列 (empty list) 。序對 (tuple) 的字面常數為小括弧圍起來以逗號區隔的元素,跟串列一樣,每個元素可以是不同的資料型態,沒有元素的小括弧就叫做空序對 (empty tuple) ,例如
a = [1, 2.0, "3"]
print(a)
b = []
print(b)
c = (1, 2.0, "3")
print(c)
d = ()
print(d)
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:list01.py
# 功能:示範定義串列及序對
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 list01.py |
[1, 2.0, '3'] |
[] |
(1, 2.0, '3') |
() |
$ |
串列與序對在設定資料上很像,兩者最大的差別是串列可變,也就是可以更換串列的元素值,序對不可變,這是說一旦建立序對後,該序對就跟數學上的常數一樣,不能改變內容。
Python 中處理資料,第一個想到的資料結構 (data structure) 就是串列,例如取得一組數據後,依序把數字放到串列中,然後再進行後續的處理,這樣就不必設置過多的變數,同樣的,文字資料也可以切割成字串,然後放到串列中處理,相對不用改變內容的話,也能改用序對。
建立串列除了字面常數外,也能用串列的建構子 (constructor) ,這裡注意串列的建構子 都採英文小寫字母,因此也被歸類到內建函數 (built-in function) ,參數 (parameter) 可以是任何的迭代器物件,也就是任何序列
a = list("1234")
print(a)
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:list02.py
# 功能:示範串列的建構子
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 list02.py |
['1', '2', '3', '4'] |
$ |
同樣的,建立序對除了字面常數外,也能用序對的建構子,序對的建構子 tuple() 也被歸類到內建函數,參數可以是任何的迭代器物件,這跟串列一樣
a = tuple("1234")
print(a)
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:list03.py
# 功能:示範序對的建構子
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 list03.py |
('1', '2', '3', '4') |
$ |
串列及序對都是序列,因此可以用序列的方式操作
s = [1, 2]
t = [3, 4]
s += t
print(t in s)
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:list04.py
# 功能:示範串列的操作
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 list04.py |
False |
$ |
序列型態有下表的操作模式
模式 | 說明 |
---|---|
x in s | 判斷 x 是否在 s 中。 |
x not in s | 判斷 x 是否不在 s 中。 |
s + x | 將 x 附加在 s 之後。 |
s * n | 將 s 中的元素複製 n 倍。 |
s[i] | 取得 s 中索引值為 i 的元素。 |
s[i:j] | 取得 s 中索引值 i 到 j 之間的元素。 |
s[i:j:k] | 取得 s 中索引值 i 到 j 之間以 k 為間隔的元素。 |
len(s) | 回傳 s 的的元素總數。 |
min(s) | 回傳 s 中的最小值。 |
max(s) | 回傳 s 中的最大值。 |
由於串列是可變的,因此串列多了很多改變元素內容的操作,例如,利用索引值更換元素內容,關鍵字 (keyword) del 可刪除元素,還有像是 append() 方法可以附加元素到串列的末端, copy() 方法進行拷貝, remove() 方法移除元素等
- s[i] = x
- s[i:j] = t
- del s[i:j]
- s[i:j:k] = t
- del s[i:j:k]
- s.append(x)
- s.clear()
- s.copy()
- s.extend(t) or s += t
- s *= n
- s.insert(i, x)
- s.pop([i])
- s.remove(x)
- s.reverse()
關於串列相關方法的詳細解說,請參考 10.1 串列 list ,序列相關方法的詳細解說,請參考 10.2 序對 tuple 。
相關教學影片