這篇文章主要介紹了python的元組操作使用方法,需要的朋友可以參考下。
簡介tuple1.元組是以圓括號“()”包圍的數(shù)據(jù)集合,不同成員以“,”分隔。通過下標進行訪問2.不可變序列,可以看做不可變的列表,與列表不同:元組中數(shù)據(jù)一旦確立就不能改變(所以沒有類似列表的增刪改操作,只有基本序列操作)3.支持任意類型,任意嵌套以及常見的序列操作4.元組通常用在使語句或用戶定義的函數(shù)能夠安全地采用一組值的時候,即被使用的元組的值不會改變聲明及使用
代碼如下:
t=()#空元組
t=(1,)#單個元素元組,注意逗號必須
t=(1,2,3)
1int#判斷
2notint#其他同序列基本操作:分片,索引
printt[0]
printt[-1]
printt[:2]#不會對原來元組造成影響
printt+(4,5)#返回新元組(1,2,3,4,5)
printt*2#(1,2,3,1,2,3)
t.index(1)
t.count(1)#列表元組轉換
l=[1,2,3]
lt=tuple(l)
tl=list(lt)
lt_sorted=sorted(l)#對元組進行排序,返回是列表#字符串轉元組(得到字符元組序列)
printtuple('hello)#('h','e','l','l','o')
tuple沒有append/extend/remove/pop等增刪改操作tuple沒有find查看幫助
代碼如下:
help(tuple)
用途1.賦值
代碼如下:
t=1,2,3#等價t=(1,2,3)
x,y,z=t#序列拆封,要求左側變量數(shù)目和右側序列長度相等
2.函數(shù)多個返回值
代碼如下:
deftest():
return(1,2)
x,y=test()
3.傳參[強制不改變原始序列]
代碼如下:
defprint_list(l):
t=tuple(l)#或者t=l[:]
dosomething()
4.字符串格式化
代碼如下:
print'%sis%syearsold'%('tom',20)
5.作為字典的key優(yōu)點
1.性能tuple比列表操作速度快若需要定義一個常量集,或者是只讀序列,唯一的操作是不斷遍歷之,使用tuple代替list
代碼如下:
>>>a=tuple(range(1000))
>>>b=range(1000)
>>>deftest_t():
...foriina:
...pass
...
>>>deftest_l():
...foriinb:
...pass
...
>>>fromtimeitimporttimer
>>>at=timer(test_t(),from__main__importtest_t)
>>>bt=timer(test_l(),from__main__importtest_l)
簡單測試
代碼如下:
>>>at.repeat(3,100000)
[1.526214838027954,1.5191287994384766,1.5181210041046143]>>>bt.repeat(3,100000)
[1.5545141696929932,1.557785987854004,1.5511009693145752]2.不可變性對不需要的數(shù)據(jù)進行“寫保護”,使代碼更加安全不可變性,若在程序中以列表形式傳遞對象集合,可能在任何地方被改變,使用元組,則不能不可變性只適用于元組本身頂層而非其內容,例如元組內部的列表可以修改
代碼如下:
l=[1,2,3]
t=(1,2,l)
l.append(4)
不可變性提供了某種完整性,規(guī)范化,確保不會被修改,保持某種固定關系修改的方法
代碼如下:
tuple->list->tuple