CodeGym /課程 /Python SELF TW /動態數組

動態數組

Python SELF TW
等級 52 , 課堂 3
開放

10.1 動態數組的特點

動態數組 是那些在程序執行期間可以改變大小的數據結構。它們允許有效地管理元素集合,添加和刪除元素,而無需預先確定數組的大小。

在Python中,動態數組就是列表(內建類list),它允許在任意位置添加、刪除和修改元素。

Python動態數組的特點

動態數組的特點:

  • 可變大小: 動態數組可以根據需要增加或減小。
  • 快速隨機存取: 可以在常數時間 O(1) 內訪問元素。
  • 自動內存管理: Python自動管理列表的內存分配和釋放。
  • 方便的元素操作方法: 內建方法讓添加、刪除和修改元素變得簡單。

在Python中創建和使用動態數組的示例:


# 創建列表
dynamic_array = [1, 2, 3, 4, 5]

# 添加元素
dynamic_array.append(6)
print(dynamic_array)  # 輸出: [1, 2, 3, 4, 5, 6]

# 刪除元素
dynamic_array.remove(3)
print(dynamic_array)  # 輸出: [1, 2, 4, 5, 6]

# 通過索引訪問
print(dynamic_array[2])  # 輸出: 4

# 修改元素
dynamic_array[2] = 10
print(dynamic_array)  # 輸出: [1, 2, 10, 5, 6]

10.2 動態數組的優點和缺點

動態數組有其優勢和缺點。讓我們來詳細看看。

優點:

  • 靈活性: 動態數組可以根據程序需求改變大小,使內存管理更加高效,並能處理不同數量的數據。
  • 快速隨機存取: 像靜態數組一樣,動態數組允許在常數時間 O(1) 內快速訪問元素。
  • 使用方便: Python內建的列表操作方法(例如,append、remove、insert)簡化了元素操作,使代碼更易讀和維護。
  • 自動內存管理: Python自動管理動態數組的內存,無需程序員手動分配和釋放內存。

缺點:

  • 內存重新分配: 增大動態數組的大小時,可能需要重新分配內存,這涉及將元素複制到新的內存區,可能會暫時減慢程序執行速度。
  • 插入和刪除元素的成本: 在數組中間插入和刪除元素需要移動元素,花費 O(n) 時間。
  • 更高的管理開銷: 與C等低級語言相比,Python中的動態數組在自動內存管理和異常處理方面有額外的開銷。

10.3 使用和應用的例子

讓我們來看一些Python中動態數組的使用例子。

1. 實現動態任務列表:


tasks = []

# 添加任務
tasks.append("Task 1")
tasks.append("Task 2")
tasks.append("Task 3")

# 完成任務並從列表中刪除
completed_task = tasks.pop(0)
print(f"Completed: {completed_task}")
print(f"Remaining tasks: {tasks}")  # 輸出: Remaining tasks: ['Task 2', 'Task 3']

2. 實現動態對象列表:


students = []

# 添加學生
students.append("Alice")
students.append("Bob")
students.append("Charlie")

# 刪除學生
students.remove("Bob")
print(f"Students after removal: {students}")  # 輸出: Students after removal: ['Alice', 'Charlie']

# 在特定位置插入學生
students.insert(1, "David")
print(f"Students after insertion: {students}")  # 輸出: Students after insertion: ['Alice', 'David', 'Charlie']
2
任務
Python SELF TW, 等級 52, 課堂 3
上鎖
我更喜歡列表
我更喜歡列表
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION