与列表不同的是,元组的元素是不可变的。因此它也被称为不可变的列表。列式上,所有元素都放在小括号中,相邻元素以逗号分隔。在内容上,可以将python支持的类型都放入元组中,在同一个元组中,元素类型可以不同。通常情况,元组用来保存程序中不可修改的内容。
# 创建元组
# tuplename = (element 1, element 2,element 3,...,element n) tuplename = (‘hello‘,‘good‘,3,5,(‘hey‘,),[‘zack‘]) print(tuplename) # 定义元组可以省略小括号,这是一个很特殊的地方,如: tuplename = ‘hello‘,‘world‘,1,2 print(tuplename) # 如果创建的元组只有一个元素,那么需要在这个元素后加逗号 tuplename = (‘hello‘,) print(tuplename) # 否则它只是定义了一个字符串 tuplename = (‘hello‘) print(tuplename) # 创建空元组 tuplename = () print(tuplename) # 使用range对象创建数值元组 tuplename = tuple(range(10,20,2)) print(tuplename) # 使用列表创建字符元组 tuplename = tuple([‘a‘,‘b‘,‘c‘]) print(tuplename) # 删除元组,这个命令不常用,因为有自动的垃圾回收功能。 del tuplename coffeename = (‘蓝山‘,‘卡布奇诺‘,‘曼特宁‘,‘摩卡‘,‘麝香猫‘,‘哥伦比亚‘) # 定义元组 # 访问元组元素 print(coffeename) # 根据索引访问元素 print(coffeename[0]) # 切片访问 print(coffeename[:3]) # 访问前三个元素 for i in coffeename: print(i) # 另外还可以使用for循环和enumerate()函数结合进行遍历。 for index,value in enumerate(coffeename): print(index,value) # 修改元组元素,不可单独修改元素,但可以用重新赋值的方法修改 coffeename = (‘蓝山‘,‘卡布奇诺‘,‘曼特宁‘,‘摩卡‘,‘麝香猫‘,‘哥伦比亚‘) coffeename = (‘蓝山‘,‘卡布奇诺‘,‘曼特宁‘,‘猫屎‘,‘麝香猫‘,‘哥伦比亚‘) print(coffeename) # 可以用加号连接元组,但只能是元组和元组连接,不能和不同类型的变量连接。 #元组元组推导式 import random tuplearr = (random.randint(10,100) for i in range(10)) print(tuplearr) # 这里和列表不同,推导式得到的结果并不是元组,而是一个生成器对象 print(tuple(tuplearr)) # 可以用tuple()转换为元组 print(list(tuplearr)) # 可以用list()转换为元组 # 注:tuple()和list()都是直接更改为元组或列表,即使用其中一个命令后tuplearr即不再是生成器对象。 # __next__()方法也可以遍历对象 tupleNext = (i for i in range(3)) print(tupleNext.__next__()) print(tupleNext.__next__()) print(tupleNext.__next__()) # print(tupleNext.__next__()) # 超出范围会报错 #使用for循环遍历 tupleNext = (i for i in range(3)) for i in tupleNext: print(i) # # 无论哪种推导式生成的元组都是生成器对象,如果想操作的话,需要使用tuple()函数转换为元组。 #
原文:https://www.cnblogs.com/zack6688/p/13508384.html