t = () #空元组
t =(1,) #单个元素元组,注意逗号必须
t =(1,2,3)
1 in t #判断
2 not in t
#其他同序列基本操作:分片,索引
print t[0]
print t[-1]
print t[:2]
#不会对原来元组造成影响
print t+(4,5) #返回新元组(1,2,3,4,5)
print t * 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) #对元组进行排序,返回是列表
#字符串转元组(得到字符元组序列)
print tuple('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 #序列拆封,要求左侧变量数目和右侧序列长度相等
2.函数多个返回值
代码如下:
def test():
return (1,2)
x, y = test()
3.传参[强制不改变原始序列]
代码如下:
def print_list(l):
t = tuple(l) #或者t = l[:]
dosomething()
4.字符串格式化
代码如下:
print '%s is %s years old' % ('tom', 20)
5.作为字典的key
优点
1.性能
tuple比列表操作速度快
若需要定义一个常量集,或者是只读序列,唯一的操作是不断遍历之,使用tuple代替list
代码如下:
>>> a = tuple(range(1000))
>>> b = range(1000)
>>> def test_t():
... for i in a:
... pass
...
>>> def test_l():
... for i in b:
... pass
...
>>> from timeit import Timer
>>> at = Timer("test_t()", "from __main__ import test_t")
>>> bt = Timer("test_l()", "from __main__ import test_l")
简单测试