2025 Python Data Types 數據類型終極指南 | 從入門到高手最新實戰技巧


數據類型(Data Types) 在 Python 程式設計中,是理解變數和資料操作的基礎。不論是剛入門的開發者,還是希望優化程式效能的進階使用者,深入了解 Python 的數據類型都有助於寫出更高效、易維護的程式碼。

Python Data Types

什麼是 Python 數據類型(Data Types)

數據類型(Data Types) 是用來定義變數儲存資料的格式與行為。在 Python 中,變數不需要提前宣告數據類型,當你賦值給變數時,Python 會根據賦值內容自動推斷數據類型,這種特性稱為 動態類型(Dynamic Typing)

範例:基本數據類型的自動推斷

# Automatic Data Type Inference
x = 10          # Integer (int)
y = 3.14        # Floating-point number (float)
name = "Alice"  # String (str)
is_active = True # Boolean (bool)

# Check data types
print(type(x))         # <class 'int'>
print(type(y))         # <class 'float'>
print(type(name))      # <class 'str'>
print(type(is_active)) # <class 'bool'>

重點

  • type() 是 Python 內建的函數,可以檢查變數的數據類型。
  • Python 會根據賦值的內容自動決定變數的數據類型,無需手動宣告。

Python 內建數據類型詳解

Python 提供了多種內建數據類型,可以根據資料的特性和用途選擇適合的類型。以下是常見的數據類型分類:

數值類型 (Numeric Types) :

  • int(整數): 表示沒有小數點的數字,例如 1100-50
  • float(浮點數): 表示帶有小數點的數字,例如 3.14-0.0012.0
  • complex(複數): 表示複數,形式為 a + bj,例如 2 + 3j
a = 42
b = 3.14
c = 2 + 5j
print(type(a), type(b), type(c))

字符串 (String) : 用來儲存文本資料,支援多種字串操作方法,例如切片、拼接、轉換大小寫等。

greeting = "Hello, Python!"
print(greeting.upper())  # Converts to uppercase
print(greeting[0:5])     # String slicing, outputs 'Hello'

布林值 (Boolean) : 只有 True 和 False 兩個值,常用於邏輯判斷和條件語句中。

is_valid = True
is_empty = False
print(type(is_valid))  # <class 'bool'>

序列 (Sequence Types) :

  • list(列表): 一種可變的有序資料集合,可以儲存不同類型的資料。
  • tuple(元組): 不可變的有序資料集合,適合用於儲存不需要改變的資料。
  • range(範圍): 生成數字序列,常用於迴圈控制。
# List (mutable)
fruits = ["apple", "banana", "cherry"]
fruits.append("orange")

# Tuple (immutable)
dimensions = (1920, 1080)

# Range
numbers = range(1, 6)

集合類型(Set Types):

  • set 儲存唯一元素的無序集合,常用於去除重複值和集合運算。
  • frozenset 不可變版本的 set,適合用於需要不可變特性的場景。
unique_numbers = {1, 2, 3, 4, 4, 5}
print(unique_numbers)  # Duplicates are automatically removed: {1, 2, 3, 4, 5}

映射類型(Mapping Type)

  • dict(字典): 一種鍵值對(key-value)形式的資料結構,適合儲存具有對應關係的資料。
person = {"name": "Alice", "age": 25, "city": "New York"}
print(person["name"])  # Accessing the value associated with the key 'name'

可變與不可變數據類型(Mutable vs Immutable)

在 Python 中,數據類型可以分為 可變(Mutable) 和 不可變(Immutable)

  • 可變類型: 內容可以被修改,如 listdictset
  • 不可變類型: 內容無法被修改,如 intfloatstrtuple
類型可變性元素順序重複元素查找效率應用場景
ListYesYesAllowedO(n)Dynamic collections
TupleNoYesAllowedO(n)Fixed data structures
SetYesNoNoO(1)Uniqueness checking
DictYesYes*Unique keysO(1)Key-value mappings

Python 3.7+ 正式確認字典保留插入順序

動態類型與類型提示(Type Hinting)

Python 是動態類型語言,意味著變數的數據類型可以隨時改變。然而,在大型專案或多人協作時,使用 類型提示(Type Hinting) 可以提高程式碼的可讀性和維護性。

範例:使用類型提示

def greet(name: str) -> str:
    return f"Hello, {name}!"

print(greet("Python"))

進階應用:搭配 mypy 等工具,可以在開發過程中進行靜態類型檢查,提升程式碼的可靠性。

數據類型轉換(Type Casting)技巧

在實際開發中,經常需要進行數據類型轉換(Type Casting),Python 提供了多種內建函數來完成這項任務:

# Integer to string
x = 100
str_x = str(x)

# String to integer
num = int("50")

# List to set (remove duplicates)
lst = [1, 2, 3, 3]
unique_set = set(lst)

注意事項:

  • 轉換過程中若格式不正確,會引發錯誤,建議搭配錯誤處理機制進行保護。

如何選擇最佳數據類型

選擇合適的數據類型不僅能提升程式效能,還能增強程式碼的可讀性和穩定性。

  • 大量數據處理: 使用 set 進行快速查找或去重操作。
  • 固定資料集合: 使用 tuple 確保資料不被意外修改。
  • 複雜結構: 組合 dict 與 list 來管理多層資料結構。

結論

Python 的數據類型不僅是基礎知識,更是撰寫高效、可靠程式碼的核心能力。以下是一些關鍵的最佳實踐:

  • 選擇適當的數據類型: 根據需求選擇最合適的數據結構,能提升程式效能與可讀性。
  • 理解可變與不可變: 理解兩者的差異有助於避免不必要的錯誤,並在多執行緒環境中保持資料一致性。
  • 善用類型提示: 即使在動態語言中,類型提示也能提升維護性和錯誤檢查效率。
  • 有效進行類型轉換: 熟練掌握數據轉換技巧,確保資料在不同場景中的正確性與一致性。