5.Python 字典(Dictionary)
Python 字典是一種無序、可變 (Mutable)的容器,用於儲存鍵(key)-值(value)對。字典由一對大括號 {} 構成,其中每個鍵與值對之間用冒號 : 分隔,鍵和值之間用逗號 , 分隔。
甲居工作室日期:2024/04/05
串列是一串 Python 的資料,將想要使用的資料內容放在兩個方括號[],各個資料可以有不同的資料型態。例如:
tiles = ['1萬', '2萬', '3萬', '4萬', '5萬', '6萬', '7萬', '8萬', '9萬','1筒', '2筒', '3筒', '4筒', '5筒', '6筒', '7筒', '8筒', '9筒','1條', '2條', '3條', '4條', '5條', '6條', '7條', '8條', '9條','東', '南', '西', '北', '白', '發', '中']
本章將開始介紹串列相關的方法 (method)、函式(function)與操作,部分內容與字串操作類似,本章將僅帶過。
存取、切片、組合、重複與字串操作類似
strTiles = ['東', '南', '西', '北', '白', '發', '中']print(strTiles[3]) # 北print(strTiles[:9:2]) # ['東', '西', '白', '中']print(strTiles + ['紅寶牌']) # ['東', '南', '西', '北', '白', '發', '中', '紅寶牌']print(tiles[:2] * 3) # ['東', '南', '東', '南', '東', '南']
串列 (List) 是 Python 中一種可變 (Mutable) 的資料結構。
添加元素
workdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']workdays.append('Saturday')
插入元素
myList = [1, 2, 3]myList.insert(1, 4) # 在索引1的位置插入元素 4print(myList) # [1, 4, 2, 3]
刪除元素
myList = [1, 2, 3]del myList[1] # 刪除索引為1的元素print(myList) # [1, 3]myList.remove(3) # 刪除值為3的元素print(myList) # [1]poppedElement = myList.pop() # 取出並返回最後一個元素print(poppedElement) # 1print(myList) # []
myList = [1, 2, 3]myList[0] = 10print(myList) # [10, 2, 3]
在 Python 中,複製串列有兩種不同的方式:淺複製(Shallow copy)和深複製(Deep copy)。兩者之間的主要區別在於是否複製了串列中的內部對象。看不懂很正常我們來看下面的例子。
A = [1, 2, [3, 4]]B = AA[0] = 5
你會驚奇的發現怎麽更改了 A 的元素 B 也更著改變,我們看一下下圖。
當你將另一個變數賦值給一個串列時,實際上是賦值該串列的指標。
先來說說淺複製的幾個方法
B = A.copy()B = A[:]B = list(A)
是的我複製出另外一個一樣的串列,所以我更改 B 時 A 不會更改改變,乍看之下是複製了 但是!但是!淺複製僅複製容器的記憶體的位址,如果修改了其中一個容器中的元素,另一個容器中的對應元素也會受到影響。
深複製需要 import copy 模組。
import copyA = [1, 2, [3, 4]]B = copy.deepcopy(A)A[0] = 5

完全複製了一份副本,包括容器本身和容器中的元素,所以複製後的容器與原始容器完全獨立,彼此不會相互影響。
| 函式 | 說明 |
|---|---|
len(iterable) | 返回串列的長度 |
sorted(iterable, key=None, reverse=False) | 返回排序後的串列,但不修改原始串列。 |
max(iterable) | 取得最大值 |
min(iterable) | 取得最小值 |
sum(iterable) | 計算總和 |
| 方法 | 描述 |
|---|---|
str.join(iterable) | 使用str將串列組合。 |
list.append(element) | 在串列末尾添加一個元素。 |
list.insert(index, element) | 在指定索引位置插入一個元素。 |
list.extend(iterable) | 將可迭代對象中的元素添加到串列末尾。 |
list.remove(element) | 刪除串列中第一個出現的指定元素。 |
list.pop([index]) | 刪除並返回指定索引位置的元素。 |
list.clear() | 清空串列中的所有元素。 |
list.index(element) | 返回指定元素在串列中第一次出現的索引。 |
list.count(element) | 返回指定元素在串列中出現的次數。 |
list.sort(key=None, reverse=False) | 對串列中的元素進行排序。 |
list.reverse() | 將串列中的元素反轉,會改變原始串列。 |
list[::-1] | 使用 slice 反轉串列,不會改變原始串列。 |
list.copy() | 返回一個串列的淺複製(Shallow copy)。 |