Python-5-資料類型— list、tuple —好用的資料儲存櫃
零、前言
在一般程式語言中,有一個很重要的概念是「陣列」,是程式設計的元素之一,可做為一組相似性質項目的容器,例如:歌曲清單,就是把「歌曲」存在同一個「清單容器」中,故這個清單,可以看作是歌曲的陣列。
而 Python 也有類似的概念,就是list
與tuple
,其實string
也算是一種陣列,只不過string
只能夠存「字元」,而list
與tuple
則是可以存各種不同的資料類型,使用上更為多樣,以下將一一介紹其使用方式。
一、List 介紹與使用方式
list
是 Python 中最常用的資料結構之一,可以用來存放一系列有序的項目,每個項目可以是不同類型的資料。
list
是動態的,意思是我們可以隨時增加或移除項目。
先看資料結構:
1
2
3
4
5
6
7
8
# list 裡面存文字
my_str_list = ["元素1", "元素2", "元素3"]
# list 裡面存數字
my_num_list = [1,2,3,...]
# list 裡面存 list
my_list_of_list = [ ["元素1", "元素2", "元素3"],
[1,2,3],
["元素1", "元素2", "元素3"]]
- 增加元素:
1
2
my_str_list.append("新元素")
print(my_str_list) # 會輸出 ["元素1", "元素2", "元素3", "新元素"]
- 刪除元素:
1
2
my_str_list.remove("元素2")
print(my_str_list) # 會輸出 ["元素1", "元素3", "新元素"]
- 存取元素:
1
print(my_str_list[0]) # 會輸出 "元素1"
- 檢查
list
元素數量:
1
print(len(my_str_list)) # 會輸出 3,代表裡面有 3 個元素
二、Tuple 介紹與使用方式
tuple
和list
非常相似,但有一個關鍵的不同:tuple
是不可變的,意思是我們不能在創建後修改它的內容。
這使得tuple
在需要保證數據不被改動的情況下特別有用。
先看資料結構:
1
2
3
4
5
6
7
8
# tuple 裡面存文字
my_str_tuple = ("元素1", "元素2", "元素3"...)
# tuple 裡面存數字
my_num_tuple = (1,2,3,...)
# tuple 裡面存 tuple
my_tuple_of_tuple = ( ("元素1", "元素2", "元素3"),
(1,2,3),
("元素1", "元素2", "元素3"))
- 存取元素:
1
print(my_str_tuple[0]) # 會輸出 "元素1"
三、使用案例說明
以下是一些使用 list
和 tuple
在台灣股票金融相關的實際應用案例,幫助讀者理解這兩者在不同情境下的使用方式:
【案例 1:股票代號列表】
假設我們需要存儲一個可以隨時增刪的股票代號列表,這種情況下我們會使用 list
,因為股票代號列表可能會隨著市場變動而改變。
1
2
3
4
5
6
7
8
9
10
# 使用 list 存儲股票代號
stock_symbols = ["2330", "2317", "2412"]
# 新增一個股票代號
stock_symbols.append("2454")
print(stock_symbols) # 會輸出 ["2330", "2317", "2412", "2454"]
# 刪除一個股票代號
stock_symbols.remove("2317")
print(stock_symbols) # 會輸出 ["2330", "2412", "2454"]
【案例 2:固定的交易日】
假設我們需要存儲一個固定不變的交易日列表,這種情況下我們會使用 tuple
,因為交易日是固定的,不會改變。
1
2
3
4
5
6
7
8
9
10
11
# 使用 tuple 存儲每周的交易日
trading_days = ("星期一", "星期二", "星期三", "星期四", "星期五")
print(trading_days) # 會輸出 ("星期一", "星期二", "星期三", "星期四", "星期五")
# 如果想要刪除某個交易日,必須先轉換成 list
temp_list = list(trading_days)
temp_list.remove("星期五")
trading_days = tuple(temp_list)
print(trading_days) # 會輸出 ("星期一", "星期二", "星期三", "星期四")
【案例 3:股票資料表】
假設我們有一組股票的相關資料,其中包括股票代號、公司名稱、股價等資訊,每筆資料都可以用 tuple
存儲,因為每筆資料的「欄位結構」是固定的,不會改變。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 使用 tuple 存儲每支股票的資料
stock_1 = ("2330", "台積電", 600)
stock_2 = ("2317", "鴻海", 100)
stock_3 = ("2412", "中華電信", 110)
# 使用 list 存儲多筆股票資料
stocks = [stock_1, stock_2, stock_3]
print(stocks)
# 會輸出 [("2330", "台積電", 600), ("2317", "鴻海", 100), ("2412", "中華電信", 110)]
# 添加新股票資料
new_stock = ("2454", "聯發科", 800)
stocks.append(new_stock)
print(stocks)
# 會輸出 [("2330", "台積電", 600), ("2317", "鴻海", 100), ("2412", "中華電信", 110), ("2454", "聯發科", 800)]
四、結語
在初階的使用上,list
與tuple
可以先看作類似的東西,都是用來存取資料的陣列,甚至大多時候用list
會省事很多。
但是在未來比較進階的應用上,例如每筆資料中,一組資料分別代表某些特定欄位,比較類似資料表格的形式時,tuple
的使用就會比list
來得更佳,主要是tuple
在效能上與資料正確性上會優於list
,但這都是後話了~