Python基礎數據類型tuple元組的概念與用法

元組簡單介紹

元組是一個和列表和相似的數據類型,也是一個有序序列

兩者擁有著基本相同的特性,但是也有很多不同的地方 

聲明元組

var = (1, 2, 3)
var = ("1", "2", "3")
var = (True, False)
var = (1.1, 1.11, 1.111)
var = ((1,), (2, 3), (4, 5))
var = ([1, 2], {"name": "polo"})

元組與列表的區別

元組與列表很相似,都是有序的隻讀序列,兩者有相同的方法和操作運算,區別在於:

列表創建後,可以進行修改

元組創建後,不能進行修改

lis = [1, 2, 3]
lis[0] = 111
print(lis)

tupl = (1, 2, 3)
tupl[0] = 2


# 輸出結果
Traceback (most recent call last):
  File "/Users/polo/Documents/pylearn/第一章:python 基本類型/6_tuple元組.py", line 21, in <module>
    tupl[0] = 2
TypeError: 'tuple' object does not support item assignment

究極原因在於

列表是可變對象,而元組是不可變對象,具體詳解可以參考

//www.jb51.net/article/218564.htm

特殊的元組

如果一個元組沒有包含任何元素,使用 () 表示一個空元組

# 空
tup = ()
print(tup, type(tup))


# 輸出結果
() <class 'tuple'>

如果一個元組隻包含一個元素,要怎麼表示?

# 隻包含一個元素
tup = (1)
print(tup, type(tup))


# 輸出結果
1 <class 'int'>

哎!竟然是 1,好像是哦,( ) 就是數學運算常見的括號呀,那到底要怎麼表示呢

正確表示元組隻包含一個元素

# 正確
tup = (1,)
print(tup, type(tup))


# 輸出結果
(1,) <class 'tuple'>

需要在元素後加一個逗號,使用 (item, ) 表示該元組

總結

(123, ) 表示的是一個元組,元組中包含一個整數 123

(123) 表示的是一個帶括號的表達式,整數 123 嵌入括號中 

元組的簡寫

當元組在 = 右邊的時候,可以省略括號

# 等價寫法
a = 1, 2
print(a, type(a))
a = (3, 4)
print(a, type(a))

a = 1,
print(a, type(a))
a = (3,)
print(a, type(a))


# 輸出結果
(1, 2) <class 'tuple'>
(3, 4) <class 'tuple'>
(1,) <class 'tuple'>
(3,) <class 'tuple'>

元組常見運算操作

索引 [ ] 取值

# 索引
tup = [1, 2, 3, 4, 5]
print(tup[0])
print(tup[-1])
print(tup[2])


# 輸出結果
1
5
3

切片 [ : : ] 取值

和列表一樣,元組也可以切片

使用語法:元組[start : end : step],獲取元組中在 [start, end) 范圍的子元組

註意范圍 [start, end) 包含 start,不包含 end

step 是步長,設為 n,則每隔 n 個元素獲取一次

# 切片
tup = [1, 2, 3, 4, 5, 6, 7, 8]
print(tup[:])  # 取全部元素
print(tup[0:])  # 取全部元素
print(tup[2:5])  # 取第 3 個元素到第 5 個元素
print(tup[::-1])  # 倒序取所有元素
print(tup[-3:-1])  # 取倒數第 3 個元素到倒數第 2 個元素


# 輸出結果
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
[3, 4, 5]
[8, 7, 6, 5, 4, 3, 2, 1]
[6, 7]

運算符 +

使用運算符 + 連接多個元組

# +
tup1 = (1,)
tup2 = (2, 3)
print(tup1 + tup2)


# 輸出結果
(1, 2, 3)

運算符 *

使用運算符 * 將元組的元素重復

# *
tup = (1, 2)
print(tup * 2)


# 輸出結果
(1, 2, 1, 2)

關鍵字 in

通過關鍵字 in 檢查列表中是否包含指定元素,返回 bool 值

not in 則是取反

# in
tup = (1, 2, 3)
print(1 in tup)
print(22 not in tup)


# 輸出結果
True
True

常見函數

len(元組) 函數

# len
tup = (1, 2, 3)
print(len(tup))


# 輸出結果
3

max(元組) 函數

# max
tup = (1, 2, 3)
print(max(tup))


# 輸出結果
3

min(元組) 函數

# min
tup = (1, 2, 3)
print(min(tup))


# 輸出結果
1

元組常見方法

元組與列表很相似,兩者都表示一個有序的序列,它們的區別在於:

  • 列表創建後,可以進行修改
  • 元組創建後,不能進行修改

這點在可變對象、不可變對象文章都寫瞭

index(item)

在元組中查找指定元素 item

如果找到元素 item,則返回元素 item 的索引

如果找不到,則拋出異常

# index
tup = (1, 2, 3)
print(tup.index(1))
print(tup.index(11))


# 輸出結果
0
Traceback (most recent call last):
  File "/Users/Documents/pylearn/第一章:python 基本類型/6_tuple元組.py", line 88, in <module>
    print(tup.index(11))
ValueError: tuple.index(x): x not in tuple

count(value)

返回元素 value 在元組中出現的次數

# count
tup = (1, 2, 1)
print(tup.count(1))
print(tup.count(11))


# 輸出結果
2
0

元組總結

因為元組是不可變對象,所以元組一般適合用來存儲不變的數據

到此這篇關於Python基礎數據類型tuple元組的概念與用法的文章就介紹到這瞭,更多相關Python數據類型tuple元組內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: