python学习[第九篇] 数据类型之 元组
python学习[第九篇] 数据类型之 元组
元组与列表
元组和列表很相近的容器类型。元组与列表的区别如下:
形式上:列表用方括号[] 而元组用圆括号
功能上:列表里的值可以改变,而元组里的一级的元素值不可变。另外元组可以作为字典的key而列表不可以。
另外当处理一组对象时,默认这个组的类型是元组。例如当函数返回一组数据时,默认返回的类型就是元组。
元组增删改查
元组创建及赋值
#创建 atuple=() atuple=('123','456',[132,344],(123,445),)
访问元组
元组的访问可以通过 索引和列表来进行,与列表一样
atuple[1]
atuple[1:4]
更新元组
元组的一级元素是不可变的,元组中的列表或字典可以改变。或者通过现有的元组合并出新的元组
#修改二级元素 atuple=('123','456',[132,344],(123,445),) atuple[2][0]=123 # 合并两个元组 atuple1=(123,456,) atuple2=(789,0,) atuple=atuple1+atuple1
删除元组
删除元组中的单独的某一个元素是不可能的,只能删除整个元组。
del atuple
元组的操作符
标准类型操作符
对象值操作符 > >= < <= == != =
身份操作符 is is not
布尔值操作符 and not or
序列 操作符 [:] []
元组的访问可以通过 索引和列表来进行,与列表一样
atuple[1]
atuple[1:4]
成员操作符 in not in
atuple=(123,456,) 123 in atuple
创建重复和连接
#创建 atuple=(123,456,) #重复 atuple*2 #连接 atuple1=(123,456,) atuple2=[789,0,] atuple=atuple1+atuple2
内建函数
标准类型内建函数
#标准类型内建函数 cmp(obj1,obj2) type(obj) repr(obj) str(obj) type(obj) atuple1=('1234','456',) atuple1=('1234','456',None) cmp(atuple1,atuple2) # 1 type(atuple1) # <type 'tuple'> repr(atuple1) # "(1234,456,)" str(x) # "(1234,456,)"
序列类型内建函数
len() min() max() sum() sorted() reversed() enumerate() zip()
atuple1=('1234','456',) atuple2=('1234','456',None) len(atuple1) # 2 max(atuple2) # '456' min(atuple2) # None 最小 sorted(atuple2) # 注意返回的是数组 [None, '1234', '456'] for x in reversed(atuple2): print x for index,item in enumerate(atuple1): print index,item for x,y in zip(atuple1,atuple2): print x,y
atuple=(123,456)
sum(atuple) #579
元组类型内建方法
Uhh......元组类型没有自己的内建方法
元组的特殊性
元组不可变性
元组一旦生成赋值他的一级元素就不可以改变他的值了。二级元素可以改变相应的值,例如元组中包含列表,我们可以修改列表中的元素。
默认集合类型
所有的多对象的,用逗号分隔的,没有明确用符号定义的,这些集合都是元组。
>>> x,y=1,2 >>> x,y (1, 2) >>> 3,4,5 (3, 4, 5) def test(): return 3,4,5 x=test() type(x) <type 'tuple'>
单元素元组
当创建单元素的元组时,要在元素后面加上逗号',' 建议定义元组时最好在最后一个元素后面加上逗号','
>>> (123) 123 >>> (123,) (123,) >>> type((123)) <type 'int'> >>> type((123,)) <type 'tuple'>
字典的关键字
由于元组是不可变的,所以元组可以通过hash算法总能得到一个值,这是作为字典键的必备条件。
列表和元组互转
# 元组转换为列表 list函数 >>> list((123,)) [123] #列表转换为元组 tuple函数 >>> tuple([123,456]) (123, 456) >>>
####end####