有序的不可變的集合, 和列表的區(qū)別就是元素不可變, 無法進行增刪改
定義
- 一個元素的寫法: 最后寫一個逗號, 用來區(qū)分
(1): 數(shù)值
和(1,): 元組
這種形式
t = (123,)
- 多個元素的寫法: 用逗號隔開每個元素
t = (1, "a", ["4", "g"], 3)
- 多個對象用逗號隔開, 默認為為元組
t = 1, "a", "2", "c", [1, "2"]
- 從列表轉(zhuǎn)換為元組, 使用內(nèi)置函數(shù)
tuple(list)
, 返回值是元組
list = [1, 2, 3, "a", "b", "c"]
result = tuple(list)
print(result, type(result))
# 打印: (1, 2, 3, 'a', 'b', 'c') <class 'tuple'>
- 元組嵌套: 一個元組可以是另一個元組的元素
t = (1, "a", (2, "c"))
常用操作
元組是不可變的, 不能進行增刪改的操作
- 查
-
len(tuple)
: 元素個數(shù)
t = (1, "a", "2", "b") print(len(t)) # 打印: 4
-
tuple[index]
: 獲取指定索引的單個元素
t = (1, "a", "2", "b") print(t[1]) # 打印: a print(t[-1]) # 打印: b
-
tuple[start=0:end=len(tuple):step=1]
: 切片, 獲取多個元素, 范圍[start, end)
-
start
: 索引起點 -
end
: 索引終點 -
step
: 步長, 負數(shù)時倒取 -
step
: 負數(shù)時, start對應元素的索引, 要小于end對應元素的索引 -
step
: 正數(shù)時, start對應元素的索引, 要大于end對應元素的索引
-
t = (1, "a", "2", "b") print(t[1:3:2]) # 打印: ('a',)
# 反轉(zhuǎn)元組 t = (1, "a", "2", "b") print(t[::-1]) # 打印: ('b', '2', 'a', 1)
-
- 獲取:
-
tuple.count(item)
: 獲取元組中指定元素的個數(shù)
t = (1, "a", "2", "b", "a") print(t.count("a")) # 打印: 2
-
tuple.index(item, start=0, end=len(tuple))
: 獲取指定元素在元組中的索引- 如果元組中沒有指定的元組時會報錯
- 當存在多個指定元素時, 只會獲取
[start, end)
范圍內(nèi)中第一個指定元素的索引
# 獲取元組中指定元素的索引 t = (1, "a", "2", "b", "a") print(t.index("a")) # 打印: 1
# 元組中不存在指定元素, 報錯 t = (1, "a", "2", "b", "a") print(t.index("c")) # 報錯: ValueError: tuple.index(x): x not in tuple
-
min(tuple)
: 獲取元組中數(shù)值最小的數(shù), 元組中的所有元素都必須是數(shù)值類型
t = (1, 2, 3, 4, 5) print(min(t)) # 打印: 1
-
max(tuple)
: 獲取元組中數(shù)值最大的數(shù), 元組中的所有元素都必須是數(shù)值類型
t = (1, 2, 3, 4, 5) print(max(t)) # 打印: 5
-
- 判定
-
元素 in tuple
: 判定元組是否包含指定元素
t = (1, "a", "2", "b", "a") print("a" in t) # 打印: True print("c" in t) # 打印: False
-
元素 not in tuple
: 判定元組是否不包含指定元素
t = (1, "a", "2", "b", "a") print("a" not in t) # 打印: False print("c" not in t) # 打印: True
-
- 比較
- Python2:
cmp(tuple1, tuple2)
, 比較兩個元組的大小- 返回值: 元組1大于元組2, 返回1
- 返回值: 元組1小于元組2, 返回-1
- 返回值: 元組1等于元組2, 返回0
- Python3:
==, >, <
, 比較兩個元組的大小或相等- 返回值: 布爾
- Python2:
- 拼接
-
tuple1 + tuple2
: 通過+
將兩個元組中的元組放到一個新的元組中
t1 = (1, 2, 3) t2 = ("a", "b", "c") print(t1 + t2) # 打印: (1, 2, 3, 'a', 'b', 'c')
-
tuple * Int
: 將元組與一個整數(shù)相乘, 獲取一個新的元組
t = (1, 2, 3) print(t * 2) # 打印: (1, 2, 3, 1, 2, 3)
-
- 拆包:
- 使用變量獲取元組中數(shù)據(jù)
a, b = 1, 2 print("a = %d, b = %d" % (a, b)) # 打印: a = 1, b = 2
- 案例: 交換兩個變量的值
# 交換兩個變量的值 a = 1 b = 2 a, b = b, a print("a = %d, b = %d" % (a, b)) # 打印: a = 2, b = 1