Published on

[Python 學習筆記] 6-2 Tuple(元組)

Authors
  • avatar
    Name
    Vic Chen
    Twitter

Tuple(元組)

Tuple:有序、不可變的序列

特點:

  • 有序(可以用索引訪問)
  • 不可變(不能修改元素)
  • 可以包含不同型別元素
  • 可以作為 dict 的 key

建立 Tuple

t1 = (1, 2, 3)         # 普通元組
t2 = (1,)              # 單元素元組(必須加逗號)
t3 = ()                # 空元組
t4 = tuple([1, 2, 3])  # 使用 tuple() 函式

訪問元素

t = (10, 20, 30, 40)

print(t[0])   # 10
print(t[-1])  # 40

# 切片
print(t[1:3])  # (20, 30)
print(t[:2])   # (10, 20)
print(t[2:])   # (30, 40)
print(t[::2])  # (10, 30) 每隔 2 個取一個

解包(Unpacking)

t = (1, 2, 3)
a, b, c = t
print(a, b, c)  # 1 2 3

# 星號解包
t = (1,2,3,4,5)
a, *b, c = t
print(a, b, c)  # 1 [2,3,4] 5

合併與重複

t1 = (1, 2)
t2 = (3, 4)

t3 = t1 + t2  # 合併 -> (1,2,3,4)
t4 = t1 * 3   # 重複 -> (1,2,1,2,1,2)

遍歷 Tuple

t = (10, 20, 30)

for x in t:
    print(x)

for i, x in enumerate(t):
    print(i, x)

常用方法

方法功能範例結果
count(x)計算 x 出現次數(1,2,2).count(2)2
index(x)查找元素 x 的索引(1,2,3).index(2)1

NOTE

Tuple 可用的方法比 List 少,因為不可變的特性,所以不會有新增、刪除、排序...等會變更元素的方法


小技巧

1. 作為 dict 的 key

d = {(1,2): "value"}
print(d[(1,2)])  # value

2. tuple 比 list 適合當固定資料或常數集合

colors = ("red", "green", "blue")

3. 轉換

lst = [1,2,3]
t = tuple(lst)   # list -> tuple
lst2 = list(t)   # tuple -> list