python基础教程之元组操作使用详解
来源: 阅读:650 次 日期:2016-06-30 09:41:24
温馨提示: 小编为您整理了“python基础教程之元组操作使用详解”,方便广大网友查阅!

这篇文章主要介绍了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

更多信息请查看脚本栏目
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map