目錄
- 元組簡(jiǎn)單介紹
- 聲明元組
- 元組與列表的區(qū)別
- 特殊的元組
- 元組的簡(jiǎn)寫
- 元組常見運(yùn)算操作
- 索引 [ ] 取值
- 切片 [ : : ] 取值
- 運(yùn)算符 +
- 運(yùn)算符 *
- 關(guān)鍵字 in
- 常見函數(shù)
- max(元組) 函數(shù)
- min(元組) 函數(shù)
- 元組常見方法
- 元組總結(jié)
元組簡(jiǎn)單介紹
元組是一個(gè)和列表和相似的數(shù)據(jù)類型,也是一個(gè)有序序列
兩者擁有著基本相同的特性,但是也有很多不同的地方
聲明元組
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"})
元組與列表的區(qū)別
元組與列表很相似,都是有序的只讀序列,兩者有相同的方法和操作運(yùn)算,區(qū)別在于:
列表創(chuàng)建后,可以進(jìn)行修改
元組創(chuàng)建后,不能進(jìn)行修改
lis = [1, 2, 3]
lis[0] = 111
print(lis)
tupl = (1, 2, 3)
tupl[0] = 2
# 輸出結(jié)果
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
究極原因在于
列表是可變對(duì)象,而元組是不可變對(duì)象,具體詳解可以參考
//www.jb51.net/article/218564.htm
特殊的元組
如果一個(gè)元組沒(méi)有包含任何元素,使用 () 表示一個(gè)空元組
# 空
tup = ()
print(tup, type(tup))
# 輸出結(jié)果
() class 'tuple'>
如果一個(gè)元組只包含一個(gè)元素,要怎么表示?
# 只包含一個(gè)元素
tup = (1)
print(tup, type(tup))
# 輸出結(jié)果
1 class 'int'>
哎!竟然是 1,好像是哦,( ) 就是數(shù)學(xué)運(yùn)算常見的括號(hào)呀,那到底要怎么表示呢
正確表示元組只包含一個(gè)元素
# 正確
tup = (1,)
print(tup, type(tup))
# 輸出結(jié)果
(1,) class 'tuple'>
需要在元素后加一個(gè)逗號(hào),使用 (item, ) 表示該元組
總結(jié)
(123, ) 表示的是一個(gè)元組,元組中包含一個(gè)整數(shù) 123
(123) 表示的是一個(gè)帶括號(hào)的表達(dá)式,整數(shù) 123 嵌入括號(hào)中
元組的簡(jiǎn)寫
當(dāng)元組在 = 右邊的時(shí)候,可以省略括號(hào)
# 等價(jià)寫法
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))
# 輸出結(jié)果
(1, 2) class 'tuple'>
(3, 4) class 'tuple'>
(1,) class 'tuple'>
(3,) class 'tuple'>
元組常見運(yùn)算操作
索引 [ ] 取值
# 索引
tup = [1, 2, 3, 4, 5]
print(tup[0])
print(tup[-1])
print(tup[2])
# 輸出結(jié)果
1
5
3
切片 [ : : ] 取值
和列表一樣,元組也可以切片
使用語(yǔ)法:元組[start : end : step],獲取元組中在 [start, end) 范圍的子元組
注意范圍 [start, end) 包含 start,不包含 end
step 是步長(zhǎng),設(shè)為 n,則每隔 n 個(gè)元素獲取一次
# 切片
tup = [1, 2, 3, 4, 5, 6, 7, 8]
print(tup[:]) # 取全部元素
print(tup[0:]) # 取全部元素
print(tup[2:5]) # 取第 3 個(gè)元素到第 5 個(gè)元素
print(tup[::-1]) # 倒序取所有元素
print(tup[-3:-1]) # 取倒數(shù)第 3 個(gè)元素到倒數(shù)第 2 個(gè)元素
# 輸出結(jié)果
[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]
運(yùn)算符 +
使用運(yùn)算符 + 連接多個(gè)元組
# +
tup1 = (1,)
tup2 = (2, 3)
print(tup1 + tup2)
# 輸出結(jié)果
(1, 2, 3)
運(yùn)算符 *
使用運(yùn)算符 * 將元組的元素重復(fù)
# *
tup = (1, 2)
print(tup * 2)
# 輸出結(jié)果
(1, 2, 1, 2)
關(guān)鍵字 in
通過(guò)關(guān)鍵字 in 檢查列表中是否包含指定元素,返回 bool 值
not in 則是取反
# in
tup = (1, 2, 3)
print(1 in tup)
print(22 not in tup)
# 輸出結(jié)果
True
True
常見函數(shù)
len(元組) 函數(shù)
# len
tup = (1, 2, 3)
print(len(tup))
# 輸出結(jié)果
3
max(元組) 函數(shù)
# max
tup = (1, 2, 3)
print(max(tup))
# 輸出結(jié)果
3
min(元組) 函數(shù)
# min
tup = (1, 2, 3)
print(min(tup))
# 輸出結(jié)果
1
元組常見方法
元組與列表很相似,兩者都表示一個(gè)有序的序列,它們的區(qū)別在于:
- 列表創(chuàng)建后,可以進(jìn)行修改
- 元組創(chuàng)建后,不能進(jìn)行修改
這點(diǎn)在可變對(duì)象、不可變對(duì)象文章都寫了
index(item)
在元組中查找指定元素 item
如果找到元素 item,則返回元素 item 的索引
如果找不到,則拋出異常
# index
tup = (1, 2, 3)
print(tup.index(1))
print(tup.index(11))
# 輸出結(jié)果
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 在元組中出現(xiàn)的次數(shù)
# count
tup = (1, 2, 1)
print(tup.count(1))
print(tup.count(11))
# 輸出結(jié)果
2
0
元組總結(jié)
因?yàn)樵M是不可變對(duì)象,所以元組一般適合用來(lái)存儲(chǔ)不變的數(shù)據(jù)
到此這篇關(guān)于Python基礎(chǔ)數(shù)據(jù)類型tuple元組的概念與用法的文章就介紹到這了,更多相關(guān)Python數(shù)據(jù)類型tuple元組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Python基礎(chǔ)之元組與文件知識(shí)總結(jié)
- Python3 元組tuple入門基礎(chǔ)
- Python基礎(chǔ)學(xué)習(xí)之基本數(shù)據(jù)結(jié)構(gòu)詳解【數(shù)字、字符串、列表、元組、集合、字典】
- 元組列表字典(莫煩python基礎(chǔ))
- python元組基礎(chǔ)詳解