元祖有兩個主要作用:
- 當(dāng)做記錄用的很強(qiáng)大的數(shù)據(jù)類型
- 充當(dāng)不可變的列表
元祖的基本特點
- 大小不可變懊渡、元素內(nèi)存地址不可變(如果是列表可以修改內(nèi)容) 的對象
- 有序元素組成的集合写穴,可索引可迭代
元祖的初始化
-
()
:使用小括號定義空元祖 -
tuple()
:新建空元祖 -
tuple(iterable)
:使用一個可迭代對象新建元祖t = tuple() # 新建空元祖 t = tupule(range(10)) # 先新建元祖亩冬,再將其賦值給t 不是改變元祖 t 的內(nèi)容约素,而是重新定義了一個新元祖 t(賦值即重新定義)
-
(ele1, ele2, ... , elen)
:給出所有元素值新建元祖 -
(ele1, ele2, ... , elen) * n
:使用*的方式初始化元祖妥凳,高效- 單元素的元祖定義:
(1,)
蠢棱,數(shù)字后的‘锌杀,’不能少,防止與運算符產(chǎn)生歧義
- 單元素的元祖定義:
元祖元素的訪問
- 支持索引
- 正索引:從左到右泻仙,從0開始
- 負(fù)索引:從右到左糕再,從-1開始
- 索引越界會拋出IndexError異常
- 元祖元素的訪問:
tuple[index]
元祖的查詢
- 指定元素索引查詢(不推薦使用)
-
tuple.index(value [,start [,end]])
:在列表中查詢value第一次出現(xiàn)的位置- 可以指定起止索引值,起止索引默認(rèn)從左到右
- 匹配不到value值玉转,會拋出ValueError異常
- 時間復(fù)雜度:
O(n)
-
- 指定元素計數(shù) ( 不推薦使用)
-tuple.count(value)
:查詢列表中出現(xiàn)value出現(xiàn)的總次數(shù)
- 時間復(fù)雜度:O(n)
- 元素個數(shù)查詢:
-
len(tuple)
:計數(shù)的方式來查詢 - 時間復(fù)雜度:
O(1)
-
元祖使用建議
- 不要在元祖內(nèi)部使用可變數(shù)據(jù)類型