iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0
Python

Python探索之旅:從基礎到實踐系列 第 5

Day 5: 列表與元組 —— 操作、切片及使用場景

  • 分享至 

  • xImage
  •  

1. 引言

在 Python 中,列表 (List) 和元組 (Tuple) 是兩個最常見的資料結構。它們的主要區別在於列表是可變的,而元組是不可變的。列表和元組廣泛應用於儲存有序的數據,並且各自有其特定的使用場景。今天的學習目標是深入了解列表的操作與切片功能,並探討元組的使用場景。

2. 列表 (List)

2.1 列表的基本操作

列表是一個可以包含多種類型元素的可變序列。以下是常見的操作:

  • 建立列表
fruits = ["蘋果", "香蕉", "橘子"]
  • 新增元素:使用 append() 方法將新元素添加到列表末尾。
fruits.append("葡萄")
print(fruits)  # 輸出: ['蘋果', '香蕉', '橘子', '葡萄']
  • 插入元素:使用 insert() 方法在指定位置插入元素。
fruits.insert(1, "草莓")
print(fruits)  # 輸出: ['蘋果', '草莓', '香蕉', '橘子', '葡萄']
  • 刪除元素:使用 remove() 方法刪除列表中的特定元素。
fruits.remove("橘子")
print(fruits)  # 輸出: ['蘋果', '草莓', '香蕉', '葡萄']
  • 排序列表:使用 sort() 方法對列表進行排序。
fruits.sort()
print(fruits)  # 輸出: ['香蕉', '草莓', '蘋果', '葡萄']
2.2 列表的切片 (Slicing)

切片是從列表中提取一個子列表的強大工具,通過指定開始和結束索引來進行操作。

  • 基本切片
numbers = [0, 1, 2, 3, 4, 5]
sub_list = numbers[1:4]
print(sub_list)  # 輸出: [1, 2, 3]
  • 省略開始或結束:若省略開始或結束索引,則默認從列表開頭或到列表末尾切片。
print(numbers[:3])  # 輸出: [0, 1, 2]
print(numbers[3:])  # 輸出: [3, 4, 5]
  • 步長切片:使用第三個參數指定步長,跳過元素進行切片。
print(numbers[::2])  # 輸出: [0, 2, 4]
2.3 列表應用場景

列表適合在需要動態調整數據的情況下使用,如不斷新增或刪除元素的情境。常見的使用場景包括:

  • 資料收集與過濾
  • 多筆資料排序
  • 儲存動態變更的數據

3. 元組 (Tuple)

3.1 元組的基本操作

元組是一種不可變的序列,意思是創建後無法修改其內容。它使用小括號來定義,並可以包含多種類型的元素。

  • 建立元組
dimensions = (10, 20, 30)
  • 存取元組元素:可以使用索引來存取元組中的元素。
print(dimensions[1])  # 輸出: 20
  • 元組解包:可以將元組中的值直接解包到變數中。
length, width, height = dimensions
print(length, width, height)  # 輸出: 10 20 30
3.2 元組的使用場景

由於元組是不可變的,它非常適合在需要保護數據不被修改的情況下使用。常見使用場景包括:

  • 固定資料集:如座標點、資料庫中的欄位記錄等。
  • 鍵值對中的鍵:由於元組是不可變的,常用作字典中的鍵值對的鍵。
3.3 元組 vs. 列表
特性 列表 (List) 元組 (Tuple)
可變性 可變 (可以新增、刪除、修改元素) 不可變 (一旦創建無法改變)
定義符號 中括號 [] 小括號 ()
使用場景 需要動態修改數據 固定資料集,不允許修改
性能 比元組稍慢 性能比列表稍快

4. 練習題目與解題過程

題目 1: 找出列表中最大和最小值

題目描述:輸入一個數字列表,程式將找出其中的最大和最小值。
解題思路

  • 使用內建的 max()min() 函數找出列表的最大值和最小值。

範例程式碼

numbers = [5, 10, 15, 20, 25]
print(f"最大值: {max(numbers)}, 最小值: {min(numbers)}")
題目 2: 計算列表中的所有元素的總和

題目描述:請使用者輸入一個數字列表,程式將計算所有元素的總和。
解題思路

  • 使用內建函數 sum() 來計算列表中所有數字的總和。

範例程式碼

numbers = [1, 2, 3, 4, 5]
print(f"總和: {sum(numbers)}")
題目 3: 切片操作

題目描述:輸入一個包含數字的列表,通過切片操作輸出部分子列表。
解題思路

  • 使用切片來提取指定範圍的元素。

範例程式碼

numbers = [10, 20, 30, 40, 50, 60, 70]
sub_list = numbers[2:5]
print(f"切片後的列表: {sub_list}")  # 輸出: [30, 40, 50]
題目 4: 元組解包

題目描述:定義一個元組,將其中的元素解包到變數中,並輸出每個變數的值。
解題思路

  • 使用元組解包來同時賦值多個變數。

範例程式碼

dimensions = (5, 10, 15)
length, width, height = dimensions
print(f"長度: {length}, 寬度: {width}, 高度: {height}")

5. 結論

列表與元組是 Python 中兩個非常強大的資料結構。列表的可變性使其非常適合於需要頻繁修改數據的場景,而元組的不可變性則確保了數據的完整性。在這次學習中,我們不僅學習了它們的基本操作和使用場景,還通過範例題目進一步鞏固了對列表切片和元組解包的應用。


上一篇
Day 4: 條件語句、迴圈結構、列表與元組
下一篇
Day 6: 字典與集合 —— 基本操作與應用
系列文
Python探索之旅:從基礎到實踐12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言