Python - 串列

大家好,有志於成為程式設計師的你!今天,我們要深入探討 Python 串列的精彩世界。作為你親切友善的電腦科學老師,我非常高興能夠引導你走過這段旅程。讓我們從基礎開始,逐步學習更進階的概念。相信我,到了這個教學結束時,你將能像專家一樣操作串列! ?

Python - Lists

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