元组

元组

跟列表一样,由一系列按顺序排列的元素组成,但是元素不能修改,所以也被称为不可变列表。

 

创建、删除

使用(),元素之间使用逗号分隔

num=(2,3,4,1,232,12)
untitile = ('python',28,("人生苦短","洗洗就睡"),["爬虫",'自动化运维'])

#小括号不是必须的,元组也可以这样创建
team = "马刺","火箭","勇士","湖人"
print(team,type(team))
#输出为 ('马刺', '火箭', '勇士', '湖人') <class 'tuple'>

#如果元组只包括一个元素,需要在元素后加一个逗号,不然定义的是字符串
verse1 = ("世界冠军",) #这是元组
verse2 = ("世界冠军") #这是字符串
print(verse1,type(verse1)) #输出为('世界冠军',) <class 'tuple'>
print(verse2,type(verse2)) #输出为 世界冠军 <class 'str'>

#创建空的元组
emptytuple = ()

#创建数值元组
#可以使用tuple()函数将range()函数循环出来的结果转换为数值元组
#tuple(data),data可以是所有可迭代对象
print(tuple(range(10,20,2))) #输出为(10, 12, 14, 16, 18)

#del删除元组
#注意不能删除元组中的元素,会报错
del team

#访问元组中的元素同访问列表

#修改元组中的元素,只能对其重新赋值
player = ('梅西','内马尔','C罗','莫德里奇')
player = ('刘亦菲','李冰冰')
print(player)

#元组在进行连接时,连接的内容必须都是元组
player = ('梅西','内马尔','C罗','莫德里奇')
print(player+('刘亦菲',)) #元组只有一个元素时,千万不要忘记后面的逗号

 

元组推导式

可以快速生成一个元组,用法跟列表推导式一样

import random
randomNum = (random.randint(10,100) for i in range(10))
print(randomNum)
#输出为<generator object <genexpr> at 0x000002754107CD00>
#输出的是生成器对象,需要转换成元组
print(tuple(randomNum))
#输出为 (28, 25, 82, 20, 35, 54, 64, 15, 27, 48)
#通过元组推导式生成的生成器对象可以使用for循环跟__next__()方法遍历 number = (i for i in range(3)) print(number.__next__()) #输出第一个元素 print(number.__next__()) #输出第二个元素 print(number.__next__()) #输出第三个元素 #需要调用三次__next__()方法 number = (i for i in range(3)) for i in number: print(i,end=" ")

 

元组的内置函数

函数名 说明
cmp(tuple1,tuple2) 比较两个元组元素
len(tuple) 计算元组元素个数
max(tuple) 返回元组中元素的最大值
min(tuple) 返回元组中元素的最小值
tuple(seq) 将列表转换为元组

 

装包与拆包

此为后续要学习的函数中的可变参数;

 案例

#有多个元素进行赋值
t1 =(2,5,8,9,7)
a,*d,c = t1 #将2放入a变量,5,8,9放入d变量,7放入c变量
print(a,c,d) #out: 2 7 [5, 8, 9]
print(*d) #out: 5 8 9

#只有一个元素时
t1=(9,)
a,*b=t1
print(a,b) #out: 9 []

 

学习来自:《python从入门到项目实践》明日科技 第六章

B站大学 P68

菜鸟教程

posted @ 2020-11-12 15:27  努力吧阿团  阅读(116)  评论(0编辑  收藏  举报