Python length function visualization with array length measurement

Python 列表 (List) (06):列表操作指南

把「有一堆東西」變成「能被快速重組的一堆東西」,關鍵就在列表的進階操作。


本篇延續列表(List)基礎,帶你把常見任務——插隊/出隊、批次產生序列、擷取子區段、統計元素、排序——全部做成一行一行可讀、可維護的 Python 程式。

你會知道什麼時候該原地改動清單、什麼時候該產生新清單,以及怎麼避開 IndexError 等小陷阱。

增加元素:使用 .insert() 方法

Python 的 .insert() 方法允許我們在列表的特定索引位置添加元素。

store_line = ["Karla", "Maxium", "Martim", "Isabella"]
store_line.insert(2, "Vikor")
print(store_line)
# 輸出:['Karla', 'Maxium', 'Vikor', 'Martim', 'Isabella']

.insert() 關鍵要點

  • 第一個參數是您想插入的索引位置
  • 第二個參數是您想插入的元素值
  • 所有在指定索引及之後的元素都會向右移動一個位置
  • 可以使用負索引(從列表末尾計算)

使用 .insert() 方法可以讓您精確控制新元素的位置,這在管理有序數據時特別有用。

刪除元素:使用 .pop() 方法

.pop() 方法允許我們移除列表中特定索引的元素,並返回被移除的值。

cs_topics = ["Python", "Data Structures", "Balloon Making", "Algorithms", "Clowns 101"]

# 不指定索引時,移除最後一個元素
removed_element = cs_topics.pop()
print(cs_topics) # ['Python', 'Data Structures', 'Balloon Making', 'Algorithms']
print(removed_element) # 'Clowns 101'

# 指定索引時,移除該索引的元素
cs_topics.pop(2)
print(cs_topics) # ['Python', 'Data Structures', 'Algorithms']
Python list pop method demonstration with elements being removed

.pop() 方法細節

無參數使用

當不提供索引時,.pop() 會默認移除列表的最後一個元素。

fruits = ["apple", "banana", "cherry"]
last = fruits.pop()  # 移除 "cherry"

指定索引

提供索引參數時,.pop(index) 會移除指定位置的元素。

fruits = ["apple", "banana", "cherry"]
second = fruits.pop(1)  # 移除 "banana"

返回值

.pop() 方法的獨特之處是它會返回被移除的元素,可以將其保存到變量中。

常見錯誤

對空列表使用 .pop() 或提供不存在的索引都會引發 IndexError。

range() 函數的多種用法

單參數

range(stop) – 從 0 開始,到 stop-1 結束

list(range(5)) # [0, 1, 2, 3, 4]

雙參數

range(start, stop) – 從 start 開始,到 stop-1 結束

list(range(2, 7)) # [2, 3, 4, 5, 6]

三參數

range(start, stop, step) – 從 start 開始,按 step 遞增,到 stop-1 結束

list(range(1, 10, 2)) # [1, 3, 5, 7, 9]

使用 range() 函數可以節省時間並減少出錯的可能性,特別是在需要創建大型數字序列時。

Python length function visualization with array length measurement

獲取列表長度

使用 len() 函數

在 Python 中,我們經常需要知道列表中有多少個元素。len() 函數可以幫助我們獲取列表的長度。

my_list = [1, 2, 3, 4, 5]
print(len(my_list))  # 輸出: 5

empty_list = []
print(len(empty_list))  # 輸出: 0

nested_list = [[1, 2], [3, 4], [5, 6]]
print(len(nested_list))  # 輸出: 3

len() 函數對於控制循環、檢查列表是否為空以及管理數據結構非常有用。

列表切片 I

獲取列表的子集

Python 提供了一種稱為切片的強大語法,可以從列表中選擇部分元素。

letters = ["a", "b", "c", "d", "e", "f", "g"]
sliced_list = letters[1:6]
print(sliced_list)  # 輸出: ["b", "c", "d", "e", "f"]

注意:切片時包含起始索引的元素,但不包含結束索引的元素。

列表切片 II

高級切片技巧

獲取前 n 個元素

fruits[:n]

例如:fruits[:3] 獲取前三個元素

獲取最後 n 個元素

fruits[-n:]

例如:fruits[-2:] 獲取最後兩個元素

排除最後 n 個元素

fruits[:-n]

例如:fruits[:-1] 獲取除最後一個外的所有元素

切片語法非常靈活,允許您以簡潔的方式獲取列表的任何部分。

Python count method illustration with elements being counted in a list

計算列表中的元素

使用 .count() 方法

在處理列表時,我們經常需要知道某個元素在列表中出現了多少次。

letters = ["m", "i", "s", "s", "i", "s", "s", "i", "p", "p", "i"]
num_i = letters.count("i")
print(num_i)  # 輸出: 4

# 也可以計算子列表在二維列表中的出現次數
number_collection = [[100, 200], [100, 200], [475, 29], [34, 34]]
num_pairs = number_collection.count([100, 200])
print(num_pairs)  # 輸出: 2

.count() 方法返回一個值,可以將其存儲在變量中或直接在表達式中使用。

排序列表 I

使用 .sort() 方法

Python 的 .sort() 方法可以按升序(數字從小到大,字母從 a 到 z)對列表進行排序。

names = ["Xander", "Buffy", "Angel", "Willow", "Giles"]
names.sort()
print(names)  # 輸出: ['Angel', 'Buffy', 'Giles', 'Willow', 'Xander']

# 使用 reverse=True 參數進行降序排序
names.sort(reverse=True)
print(names)  # 輸出: ['Xander', 'Willow', 'Giles', 'Buffy', 'Angel']

注意:.sort() 方法直接修改原始列表,不返回任何值。

排序列表 II

使用 sorted() 函數

不改變原列表

sorted() 函數創建一個新的排序列表,原始列表保持不變。

names = ["Xander", "Buffy", "Angel", "Willow", "Giles"]
sorted_names = sorted(names)
print(sorted_names)  # ['Angel', 'Buffy', 'Giles', 'Willow', 'Xander']
print(names)  # ["Xander", "Buffy", "Angel", "Willow", "Giles"]

函數語法

作為內置函數,sorted() 在列表前使用,而不是作為列表的方法。

# 使用 reverse 參數進行降序排序
sorted_names_desc = sorted(names, reverse=True)
print(sorted_names_desc)  # ['Xander', 'Willow', 'Giles', 'Buffy', 'Angel']

當需要保持原始列表不變的同時獲取排序版本時,sorted() 是最佳選擇。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

High Quality

Lorem ipsum dolor sit amet, consectetur adipiscing elitsed do eiusmod tempor.

Fast Delivery

Lorem ipsum dolor sit amet, consectetur adipiscing elitsed do eiusmod tempor.

Best Warranty

Lorem ipsum dolor sit amet, consectetur adipiscing elitsed do eiusmod tempor.