标签:
最近学习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 tup4
print(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)
剩下的方法用到的时候再说吧,以上:
标签:
原文地址:http://www.cnblogs.com/zhangxd-stn/p/python_basic.html