元組
元組(tuple):元組是不可變的序列,沒有增叽讳,刪追他,改的權(quán)限(即不能修改),只能查詢和使用索引岛蚤,切片等一些功能邑狸。
元組使用小括號(hào),列表使用方括號(hào)涤妒。
元組最大的好處是可以保證數(shù)據(jù)的安全单雾。
1.創(chuàng)建元組
使用 tuple()
或者 ( )
直接初始化元組
# 創(chuàng)建一個(gè)空元組
t1 = ()
print(t1) # out: ()
# 創(chuàng)建只包含一個(gè)值的元組(組中只有一個(gè)元素時(shí),后面一定要加逗號(hào),否則數(shù)據(jù)類型不確定)
t2 = (1, )
print(type(t2))
print(t2) # out: (1,)
# 創(chuàng)建一個(gè)包含三個(gè)元素的元組
t3 = (11, 22, 33)
print(t3) # out: (11, 22, 33)
# 將列表轉(zhuǎn)換成元組
t4 = tuple([1, 2, 3, 4])
print(t4) # out: (1, 2, 3, 4)
# 將字典轉(zhuǎn)換成元組
#針對(duì)字典 會(huì)返回字典的key組成的tuple
t5 = tuple({'a': 100, 'b': 42, 'c': 9})
print(t5) # out: ('a', 'b', 'c')
# 將字符串轉(zhuǎn)換成元組
t6 = tuple("abc")
print(t6) # out: ('a', 'b', 'c')
# 將區(qū)間轉(zhuǎn)換成元組
t7 = tuple(range(1, 6))
print(t7) # out: (1, 2, 3, 4, 5)
2.元組的訪問和截取
元組可以使用下標(biāo)索引來(lái)訪問元組中的值
語(yǔ)法格式:tuple_name[i]
tup1 = ('physics', 'chemistry', 1997, 2000)
print("tup1[0]: ", tup1[0]) # out: tup1[0]: physics
元組可以可以截取索引中的一段元素
語(yǔ)法格式:tuple_name[start : end : step]
其中step可有可無(wú)(默認(rèn)為1,不能為0),[start, end)范圍為左閉右開
tup2 = (1, 2, 3, 4, 5, 6, 7)
print("tup2[1:6:2]: ", tup2[1:6:2]) # out: tup2[1:6:2]: [2, 4, 6]
print("tup2[1:5]: ", tup2[1:5]) # out: tup2[1:5]: [2, 3, 4, 5]
# 反向讀取硅堆,讀取倒數(shù)第二個(gè)元素
print('tup2[-2]: ', tup2[-2]) # out: tup2[-2]: 2
# 截取元素屿储,從第二個(gè)開始后的所有元素
print('tup2[1:]: ', tup2[1:]) # out: tup2[1:]: (2, 3, 4, 5, 6, 7)
3.修改元組
元組中的元素值是不允許修改的,但可以對(duì)元組進(jìn)行連接組合
'''對(duì)元組變量進(jìn)行重新賦值'''
tup1 = (10, 20)
tup1 = (5, 25.3)
print(tup1) # out: (5, 25.3)
# 以下修改元組元素操作是非法的渐逃。
# tup1[0] = 100; #報(bào)錯(cuò)
'''通過連接多個(gè)元組(使用`+`或者`*`進(jìn)行拼接元組)的方式向元組中添加新元素'''
tup2 = (12, 34.56)
tup3 = ('abc')
# 創(chuàng)建一個(gè)新的元組
tup4 = tup2 + tup3
tup5 = tup3 * 2
print(tup4) # out: (12, 34.56, 'abc')
print(tup5) # out: ('abc', 'abc')
4.刪除元組
元組中的元素值是不允許刪除的够掠,但可以使用
del()
語(yǔ)句來(lái)刪除整個(gè)元組
tup = ('physics', 'chemistry', 1997, 2000)
print(tup) # out: ('physics', 'chemistry', 1997, 2000)
del(tup)
print(tup) # 刪除tup中的所有元素
5.元組常用方法
tuple.index(obj[,start=0[,end=len(tuple)]])
:獲取指定元素的索引號(hào)
obj -- 指定檢索的對(duì)象。
start -- 可選參數(shù)朴乖,開始索引祖屏,默認(rèn)為0助赞。(可單獨(dú)指定)
end -- 可選參數(shù)买羞,結(jié)束索引,默認(rèn)為元祖的長(zhǎng)度雹食。(不能單獨(dú)指定)
tup = [1, 2, 3]
tup.index(2) # out: 1
tuple.count(x)
:獲取元組中元素出現(xiàn)的次數(shù)
tup = [1, 2, 1, 5, 2]
tup.count(2)
# out: 2
sorted(tup)
:暫時(shí)排序
tuple = (11, -10, 22, 999, 33, 44)
# 不改變?cè)M中元素的位置畜普,只是臨時(shí)排序,是可以的
print(sorted(tuple)) # out: [-10, 11, 22, 33, 44, 999]
6.元組中的內(nèi)置函數(shù)
len(tuple)
:計(jì)算元組元素個(gè)數(shù)
max(tuple)
:返回元組中元素最大值
min(tuple)
:返回元組中元素最小值
sum(tuple)
:計(jì)算元組的和
tuple(seq)
:將列表轉(zhuǎn)換為元組
t1 = (2, 5, 15, 48, 88)
len(t1) # out: 5
max(t1) # out: 81
min(t1) # out: 1
sum(t1) # out: 161
tuple([1,2,4]) # out: (1, 2, 4)