这篇文章主要介绍了python的元组操作使用方法,需要的朋友可以参考下。
简介tuple1.元组是以圆括号“()”包围的数据集合,不同成员以“,”分隔。通过下标进行访问2.不可变序列,可以看做不可变的列表,与列表不同:元组中数据一旦确立就不能改变(所以没有类似列表的增删改操作,只有基本序列操作)3.支持任意类型,任意嵌套以及常见的序列操作4.元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变声明及使用
代码如下:
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#序列拆封,要求左侧变量数目和右侧序列长度相等
2.函数多个返回值
代码如下:
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优点
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.不可变性对不需要的数据进行“写保护”,使代码更加安全不可变性,若在程序中以列表形式传递对象集合,可能在任何地方被改变,使用元组,则不能不可变性只适用于元组本身顶层而非其内容,例如元组内部的列表可以修改
代码如下:
l=[1,2,3]
t=(1,2,l)
l.append(4)
不可变性提供了某种完整性,规范化,确保不会被修改,保持某种固定关系修改的方法
代码如下:
tuple->list->tuple
更多信息请查看IT技术专栏