什麼是列表?
程式語言通常都會有負責組織、儲存多筆資料的資料型別。在 JavaScript 和 Golang 中,這種資料型別被稱為陣列 (array),而 Python 則是列表 (list)。
Python 中的列表用 [...]
宣告,每項資料中間以半形逗號區隔:
friends = ["Cute Goblin", "Big Goblin", "Small Goblin", "Taipei Goblin"]
上面的列表中清一色都是字串,但我們其實可以在列表中加入各種型別的資料。
若資料量持續增加,我們可以將每筆資料一行一行拆開,讓程式碼更容易閱讀。畢竟很多東西,不是越長就越好:
friends = [
"Cute Goblin",
"Big Goblin",
"Small Goblin",
"Taipei Goblin"
]
goblin_age = [
25,
18,
55
]
用索 (index) 提取列表中的資料
首先我們要知道在程式的世界,通常都是從 0 開始計數的,而非日常生活中直覺的 1。
列表中每一筆資料都有其索引 (index),也就是該筆資料在列表中的位置。再提醒一次,務必要從 0 開始算起。
friends = ["Cute Goblin", "Big Goblin", "Small Goblin", "Taipei Goblin"]
以上述列表為例,每筆資料的索引如下:
- 0:
Cute Goblin
- 1:
Big Goblin
- 2:
Small Goblin
- 3:
Taipei Goblin
再舉個例子,索引 1 等於列表當中第二筆資料。
我們可以運用[索引]
來提取特定的列表資料:
friends = ["Cute Goblin", "Big Goblin", "Small Goblin", "Taipei Goblin"]
print(friends[0])
# 列印出 "Cute Goblin",因為我們輸入了 0 作為索引
計算列表長度
在 Python 中,我們能使用 len(list_name)
直接取得列表長度。
注意,別把「列表長度」和「列表中最後一筆資料的索引」混為一談了。由於索引是從 0 開始算起,所以「列表長度 + 1」才等於最後一筆資料的索引!
但相對來說,我們其實能利用上述兩者的關係,在不知道列表長度的情況下取得最後一筆資料的索引:
def get_last_index(inventory):
return len(inventory) - 1
更新列表資料
同樣運用索引,我們能夠更新列表中特定位置的資料。比方說以下就將 Small Goblin
更新為 Baby Goblin
。
friends = ["Cute Goblin", "Big Goblin", "Small Goblin", "Taipei Goblin"]
friends[0] = "Baby Goblin"
# friends: ["Cute Goblin", "Big Goblin", "Baby Goblin", "Taipei Goblin"]
將資料加入至列表、從列表移出
append
append()` 方法,將資料加入至列表的最末端:
teams = []
teams.append("Fubon Guardians")
teams.append("Uni Lions")
# teams = ["Fubon Guardians", "Uni Lions"]
實際上我們會時常建立空白的列表,然後透過迴圈和 append()
將資料加入至列表當中。比方說底下 generate_user_list
函式透過迴圈產生 id
,然後在每次遞迴都將新產生的 id
加入至 player_list
。
def generate_user_list(num_of_users):
player_ids = []
for i in range(0, num_of_users):
player_ids.append(i)
return player_ids
pop
pop()
的功能和 append()
相反,會從列表最尾端移除資料,並回傳被移除的那筆資料。
friends = ["Cute Goblin", "Big Goblin", "Small Goblin", "Taipei Goblin"]
last_friend = friends.pop()
# friends = ["Cute Goblin", "Big Goblin", "Baby Goblin"]
# last_friend = "Taipei Goblin"
pop()
提供我們帶入參數,指定要將列表中哪個索引的資料移除。再次提醒,索引要從 0 開始算起。
friends = ["Cute Goblin", "Big Goblin", "Small Goblin", "Taipei Goblin"]
removed_friend = friends.pop(2)
# friends = ["Cute Goblin", "Big Goblin", "Taipei Goblin"]
# removed_friend = " "Small Goblin""