Python - 串列
大家好,有志於成為程式設計師的你!今天,我們要深入探討 Python 串列的精彩世界。作為你親切友善的電腦科學老師,我非常高興能夠引導你走過這段旅程。讓我們從基礎開始,逐步學習更進階的概念。相信我,到了這個教學結束時,你將能像專家一樣操作串列! ?
Python 串列
Python 的串列就像資料結構中的瑞士刀。它們多功能、易於使用且強大無比。想像一下,你正在籌備一個派對,需要記錄來賓。串列對此就非常適合!
讓我們建立第一個串列:
guests = ["Alice", "Bob", "Charlie", "David"]
print(guests)
當你執行這段程式碼時,你會看到:
['Alice', 'Bob', 'Charlie', 'David']
恭喜!你剛剛建立了你的第一個串列。但實際上發生了什麼呢?
在 Python 中,串列是一系列被方括號 []
包圍的項目,每個項目之間用逗號隔開。這些項目可以是任何型別 - 字串、數字,甚至其他串列!
這裡有另一個包含混合資料型態的例子:
mixed_list = [42, "Hello", 3.14, True, [1, 2, 3]]
print(mixed_list)
輸出:
[42, 'Hello', 3.14, True, [1, 2, 3]]
正如你所見,我們的串列包含了一個整數、一個字串、一個浮點數、一個布林值,甚至另一個串列!
存取串列中的值
現在我們有了賓客串列,我們要如何檢查誰將來參加?這就是索引派上用場的地方。在 Python 中,串列索引從 0 開始。所以,要存取第一個項目,我們使用索引 0。
guests = ["Alice", "Bob", "Charlie", "David"]
print(guests[0]) # 第一位賓客
print(guests[2]) # 第三位賓客
print(guests[-1]) # 最後一位賓客
輸出:
Alice
Charlie
David
注意到我們使用 -1 來存取最後一個項目嗎?負索引從串列的結尾開始。這就像 從後面開始計數一樣!
更新串列
糟糕!我們忘了邀請 Eve。讓我們把她加入串列中:
guests = ["Alice", "Bob", "Charlie", "David"]
guests.append("Eve")
print(guests)
輸出:
['Alice', 'Bob', 'Charlie', 'David', 'Eve']
append()
方法將一個項目添加到串列的結尾。但我們如果想把 Eve 加入 Bob 和 Charlie 之間呢?
guests.insert(2, "Eve")
print(guests)
輸出:
['Alice', 'Bob', 'Eve', 'Charlie', 'David', 'Eve']
現在我們有兩個 Eve!讓我們在下一節中修正這個問題。
刪除串列元素
有時,我們需要從串列中刪除項目。讓我們刪除多餘的 Eve:
guests = ['Alice', 'Bob', 'Eve', 'Charlie', 'David', 'Eve']
guests.remove("Eve")
print(guests)
輸出:
['Alice', 'Bob', 'Charlie', 'David', 'Eve']
remove()
方法刪除指定的項目的第一次出現。如果我們知道索引,可以使用 pop()
:
removed_guest = guests.pop(3)
print(f"{removed_guest} 不能參加。")
print(guests)
輸出:
David 不能參加。
['Alice', 'Bob', 'Charlie', 'Eve']
Python 串列操作
Python 的串列帶來一些很酷的技巧。讓我們來探索一些:
# 串接
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = list1 + list2
print(combined)
# 重複
repeated = [1, 2, 3] * 3
print(repeated)
# 長度
guests = ['Alice', 'Bob', 'Charlie', 'Eve']
print(len(guests))
輸出:
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 1, 2, 3, 1, 2, 3]
4
索引、切片和矩陣
記得我們如何存取個別項目嗎?我們也可以一次抓取多個項目使用切片:
guests = ['Alice', 'Bob', 'Charlie', 'David', 'Eve']
print(guests[1:4]) # 從索引 1 開始,到 (但不包括) 索引 4
print(guests[:3]) # 從開頭到 (但不包括) 索引 3
print(guests[2:]) # 從索引 2 到結尾
print(guests[::2]) # 每第二個項目
輸出:
['Bob', 'Charlie', 'David']
['Alice', 'Bob', 'Charlie']
['Charlie', 'David', 'Eve']
['Alice', 'Charlie', 'Eve']
串列也可以用來創建矩陣(二維串列):
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(matrix[1][1]) # 存取第二列,第二行的元素
輸出:
5
Python 串列方法
Python 提供了各種內建的方法用於串列。以下是一些常見的方法:
方法 | 描述 |
---|---|
append() | 在串列的結尾添加一個元素 |
clear() | 刪除串列中的所有元素 |
copy() | 返回串列的副本 |
count() | 返回具有指定值的元素數量 |
extend() | 將串列的元素添加到當前串列的結尾 |
index() | 返回具有指定值的第一個元素的索引 |
insert() | 在指定位置添加一個元素 |
pop() | 刪除指定位置的元素 |
remove() | 刪除具有指定值的第一個項目 |
reverse() | 反轉串列的順序 |
sort() | 排序串列 |
讓我們試幾個:
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]
numbers.sort()
print(numbers)
numbers.reverse()
print(numbers)
print(numbers.count(5))
輸出:
[1, 1, 2, 3, 3, 4, 5, 5, 6, 9]
[9, 6, 5, 5, 4, 3, 3, 2, 1, 1]
2
內建函數與串列
Python 還提供了許多與串列一起使用的內建函數:
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]
print(max(numbers)) # 最大值
print(min(numbers)) # 最小值
print(sum(numbers)) # 所有值的總和
輸出:
9
1
39
就是這樣,各位!我們已經走過了 Python 串列的領域,從創建到操作,從簡單的操作到內建的方法。記住,孰能生巧,所以不要害怕實驗這些概念。
在我們結束之前,這裡有一個有趣的事實:你知道 Python 串列實際上是作為動態陣列實現的嗎?這意味著它們可以根據需要擴大或縮小,使其非常靈活。
希望你能夠享受這個教學,就像我享受引導你一樣。繼續編程,繼續學習,最重要的是,繼續享受 Python 的樂趣!
Credits: Image by storyset