欢迎来到我的博客园

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####

posted @ 2018-07-16 13:27  panzq  阅读(181)  评论(0编辑  收藏  举报