1. Python 中陣列(列表)初始化的基本概念
Python 的列表(陣列)是一種靈活的資料結構,可以儲存不同資料型別的元素,是 Python 程式設計中最基礎的知識之一。這篇文章將會說明在 Python 中初始化陣列(列表)的方法。
什麼是 Python 的列表?
列表是一種可以將數字、字串等各種資料型別的元素集合在一起的資料結構,在 Python 中常被用作「陣列」。它可以包含不同型別的元素,並且在初始化之後可以自由地新增或刪除元素。
example_list = [1, "Hello", True]
print(example_list)
# 輸出: [1, "Hello", True]
初始化空列表
要建立空的列表,可以使用 []
或 list()
。這種方式很適合在之後需要加入元素,或是預先保留變數使用時。
empty_list1 = []
empty_list2 = list()
print(empty_list1) # 輸出: []
print(empty_list2) # 輸出: []
初始化特定數量元素的列表
在 Python 中,可以輕鬆地建立具有特定元素數量的列表。舉例來說,如果要建立一個包含 5 個 0 的列表,可以這樣寫:
initial_list = [0] * 5
print(initial_list)
# 輸出: [0, 0, 0, 0, 0]
這種方式在需要建立固定值填滿的列表時非常實用。
使用 list 函數初始化列表
list()
函數可用來將其他資料型別轉換為列表。例如可以將字串轉換為字元列表,或將 tuple 轉換為列表。
char_list = list("Python")
tuple_list = list((1, 2, 3))
print(char_list)
# 輸出: ['P', 'y', 't', 'h', 'o', 'n']
print(tuple_list)
# 輸出: [1, 2, 3]

2. 使用列表生成式初始化列表
列表生成式是 Python 中一種能讓程式碼更簡潔、更有效率的語法,尤其適合根據條件來初始化列表的情境。
基本的列表生成式
以下範例使用列表生成式來建立一個包含從 0 到 9 的整數的列表。
numbers = [i for i in range(10)]
print(numbers)
# 輸出: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
帶條件的列表生成式
也可以加入條件來建立特定的列表。以下範例會建立一個只包含偶數的列表:
even_numbers = [i for i in range(10) if i % 2 == 0]
print(even_numbers)
# 輸出: [0, 2, 4, 6, 8]
3. 初始化二維列表
在 Python 中,可以透過列表中包含其他列表來表示多維陣列。這使得我們能夠處理像表格或矩陣這類的資料結構。
初始化二維列表的方法
以下是使用列表生成式來初始化一個 3×3 的二維列表的範例。這種方式可以確保每個內部列表都是獨立的,避免因為參照相同物件而導致意外的資料變更。
matrix = [[0 for _ in range(3)] for _ in range(3)]
print(matrix)
# 輸出: [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
注意事項:初始化二維列表時的參照問題
若使用 [[0] * 3] * 3
的方式建立二維列表,會導致每一列都參照同一個物件,當其中一列被修改時,其他列也會一起變動。透過列表生成式可以避免這種問題,讓每一列都是獨立的列表。
4. 操作列表的方法:新增與合併元素
Python 的列表可以在初始化後動態地新增或刪除元素,也可以與其他列表合併。以下將介紹一些基本的操作方法。
新增元素:append 方法
使用 append()
可以在列表的尾端加入新的元素。
my_list = [1, 2, 3]
my_list.append(4)
print(my_list)
# 輸出: [1, 2, 3, 4]
插入元素:insert 方法
insert()
可以在列表中指定的位置插入元素。透過指定索引值,可以將元素插入到任意位置。
my_list = [1, 2, 3]
my_list.insert(1, 'new')
print(my_list)
# 輸出: [1, 'new', 2, 3]
合併列表:使用 + 運算子
若要將多個列表合併為一個,可以使用 +
運算子來連接它們。
list1 = [1, 2, 3]
list2 = [4, 5]
combined_list = list1 + list2
print(combined_list)
# 輸出: [1, 2, 3, 4, 5]

5. 其他初始化方法:array 模組與 NumPy
Python 提供了專門用於數值運算的 array
模組與 NumPy 函式庫,這些工具讓我們可以使用列表以外的資料結構來初始化陣列。
使用 array 模組進行初始化
Python 的 array
模組可以有效率地儲存相同資料型別的陣列,因此在記憶體使用上比一般列表更節省。
import array
int_array = array.array('i', [0] * 5)
print(int_array)
# 輸出: array('i', [0, 0, 0, 0, 0])
使用 NumPy 初始化多維陣列
NumPy 函式庫可以高效地處理大型的多維陣列,特別是在進行科學運算或資料分析時非常常用。
import numpy as np
numpy_array = np.zeros((3, 3))
print(numpy_array)
# 輸出:
# [[0. 0. 0.]
# [0. 0. 0.]
# [0. 0. 0.]]
NumPy 的陣列在運算效能方面表現出色,與 Python 標準的列表相比,更適合用於大量資料的處理。
6. Python 陣列初始化方法總結
本文完整介紹了在 Python 中初始化列表與陣列的各種方法。透過理解每種初始化方式的優點,根據使用情境選擇合適的方式,能夠讓你寫出更高效、可讀性更佳的程式碼。
- 建立空列表:使用
[]
或list()
進行簡單初始化。 - 列表生成式:依條件快速建立列表。
- 多維列表:使用列表嵌套表示,並注意參照問題。
- 元素新增與合併:使用
append()
、insert()
與+
運算子進行彈性操作。 - array 與 NumPy:適合數值與多維資料處理的資料結構。
只要掌握各種方法與函式庫的特性,根據需求適當使用,就能靈活掌握 Python 的列表與陣列初始化技巧。