標籤:
最近學習Django,在配置templates的路徑TEMPLATE_DIRS的時候,死活要給我抱一個錯:The TEMPLATE_DIRS setting must a tuple。原來tuple只有一個元素的時候,後面要加一個逗號來避免歧義。現在來系統的學習一下tuple的各種用法,測試版本python3.4。
tuple中文名為元組:與list類似但是又有很大區別。作為一個tuple,它比list效能好,代碼安全效能高。定義一個tuple就是用方括弧將元素括起來,元素之間逗號隔開,一般情況下逗號隔開的元素預設為tuple。
首先,tuple元素一經定義是不會被改變的,自從它被定義,那麼它的大小以及資料就不會改變
tup0=(1,2,3,4)tup0[0]=2#TypeError: ‘tuple‘ object does not support item assignment
然後,tuple元組是可以被del刪除的:
tup4=(1,)del tup4print(tup4)#NameError: name ‘tup4‘ is not defined
再然後,tuple元組可以進行一些運算的,比如說*以及+
tup1=(1,2)print(tup1*3)print(tup1+tup1)#(1, 2, 1, 2, 1, 2)#(1, 2, 1, 2)
如果tuple中只有一元素,例如1,那麼python將預設把當成1,把兩邊的圓括弧作為算數中的小括弧,而不是元組!
t=(1)print(t*2)#2 結果為2
所以為了避免歧義,當只有一個元素的時候,我們要在這個元素後面加上一個逗號:這也是上面路徑報錯的原因
t=(1,)print(t*2)(1, 1)
此外,tuple也可以使用切片功能,或者直接根據索引取得tuple中的元素。
tup=(0,1,2,3,4,5)print(tup[0])print(tup[0:3])#0#(0, 1, 2)
tuple中的count(value)方法可以找出有tuple中有幾個相同的value。
tuple中的index(value,)方法可以找到值為value的索引。
tuple中的__add__(tuple)方法其實就是將兩個tuple連在一起。
tuple中的_contains_(value)看看tuple中有沒有指定元素。
len(tuple),max(tuple),min(tuple)顧名思義。
最後,可以用tuple(list)將list變為一個tuple:
lis=[1,2,3]print(lis)tu=tuple(lis)print(tu)#[1, 2, 3]#(1, 2, 3)
剩下的方法用到的時候再說吧,以上:
python tuple基本用法