元组(tuple)是Python中另一个重要的序列结构,与列表类似,也是由一系列按特定顺序排列的元素组成,但是它是不可变序列。因此,元组也可以称为不可变的列表。在形式上,元组的所有元素都放在一对“()”中,两个相邻元素间使用逗号“,”分隔。在内容上,可以将整数、实数、字符串、列表、元组等任何类型的内容放入到元组中,并且在同一个元组中,元素的类型可以不同,因为它们之间没有任何关系。通常情况下,元组用于保存程序中不可修改的内容。
说明
从元组和列表的定义上看,这两种结构比较相似,那么它们之间有哪些区别呢。它们之间的主要区别就是元组是不可变序列,列表是可变序列。即元组中的元素不可以单独修改,而列表则可以任意修改。
# 创建空元组
emptytuple=()
num = (7,14,21,28,35,42,49,56, 63)
team= ("马刺", "火箭","勇士","湖人")
untitle = ('Python' ,28,("人生苦短","我用Python"), ["爬虫","自动化运维","云计算" , "Web开发"])
language = ( 'Python', "C#", '''Java''')
verse1 = ("世界杯冠军",)
print("verse1的类型为",type(verse1))
verse2 = ("世界杯冠军")
print("verse2的类型为",type(verse2))
# 删除元组
del emptytuple
del语句在实际开发时,并不常用。因为Python自带的垃圾回收机制会自动销毁不用的元组,所以即使我们不手动将其删除,Python 也会自动将其回收。
data = ('Python ' ,28,("人生苦短","我用Python"), ["爬虫" ,"自动化运维" ,"云计算" , "Web开发"])
print(data)
print(data[1])
print(data[:3])
元组是不可变序列,所以不能对它的单个元素值进行修改。但是元组也不是完全不能修改。我们可以对元组进行重新赋值。
player = ('梅西','C罗', '伊涅斯塔', '内马尔','格列兹曼', '莫德里奇') #定义元组
player = ('梅西','C罗',' 苏亚雷斯','内马尔','格列兹曼','莫德里奇') # 对元组进行重新赋值
print( "新元组", player)
使用元组推导式可以快速生成一一个元组,它的表现形式和列表推导式类似,只是将列表推导式中的中括号“[ ]”修改为小括号“()”。
import random
#导入random标准库 #导入random标准库
randomnumber = ( random. randint(10,100) for i in range(10))
print("生成的元组为: " , randomnumber)
randomnumber = tuple(randomnumber) # 转换为元组
print("转换后:",randomnumber)
元组和列表都属于序列,而且它们又都可以按照特定顺序存放一组元素,类型又不受限制,只要是Python支持的类型都可以。那么它们之间有什么区别呢?
列表类似于我们用铅笔在纸上写下自己喜欢的歌词,写错了还可以擦掉;而元组则类似于用钢笔写下的歌词,写上了就擦不掉了,除非换一张纸重写。