详细如下:
#元组:不可变列表,值不可修改,顺序不可变 #元组有很多继承序列的内容如下: #序列索引从0开始,从最后起则索引为-1 a = (1,8,3,9,5,6) b = ('小一','小二','小三') c = ('Wang','baby','maya','Jiang','an') aa = list(range(1,11,2)) print(aa) print(a[2],a[-1],a[-3]) #输出第几项 #切片 print(a[::2]) # 默认从0到最后,每两个输出一个 print(a[1:4:2]) # 从第一个到第四个,每两个 print(a[:2]) # 前三个 print(a[:]) # 全部 print(a+b) #序列相加 print(a*3) #序列乘 #检查序列成员 print('小三' in b) #in 在,not in 不在,结果为true #序列长度、最大值、最小值;%d数字替代符,n换行符 print("序列长度:%d 序列最大值:%d 序列最小值:%d" %(len(a),max(a),min(a))) print(list(a)) #序列转为元组 print(str(a)) #序列转为字符串 print(sum(a)) #序列元素+ print(sorted(a)) #序列排序,a内原本顺序不会变 print(list(reversed(a))) #反向元素,a内原本顺序不会变 #序列索引和元素组合 print(list(enumerate(a))) for i,element in enumerate(a): print(i,element) # -------------------元组------------------------- #除了对元素的顺序和内容不可添加、修改、删除外,元组有很多同列表一样的功能 #遍历元组 print('遍历元组') for item in a: print(item) #将a分两列输出 print('将a分两列输出') for index,item in enumerate(a): if index%2 ==0: print(item,' ',end='') # :横向空出一个制表符的位置;end='':接下来输出的内容不要换行显示,即:index 0不换行,1换行,2不换行,3换行 else: print(item) #统计元素的数量a.count() print(a.count(9)) #结果1 print(a.index(9)) #结果2,9首次出现的索引号 #元组的排序 print('sorted(c): ',sorted(c)) #序列排序,c内原本顺序不会变 print('sorted(c,key=str.lower,reverse=True): ',sorted(c,key=str.lower,reverse=True)) #倒序排序,c内原本顺序不会变 print(c) #元组推导式:(用列表创建的表达式依然可成功创建,******注意:记得加上tuple()******) #生成指定范围的数值元组 import random d = tuple(random.randint(11,20)*2 for i in range(10)) #random.randint(30,90)*2:元素表达式,i:针对后面range的循环变量 print(d) #生成指定需求的元组,如d的5折 e = tuple(int(x*0.5) for x in d) #x*0.5:元素表达式;x:d中的元素 print(e) #生成符合条件的元组,如f元组需要0.5的d元素,且0.5d元素依然为偶数 f = tuple(int(x*0.5) for x in d if int(x*0.5)%2==0) #x*0.5:元素表达式;x:d中的元素 print(f) #创建数字元组 ff = tuple(range(1,13,3)) print(ff) #二维元组 #使用推导式创建二维元组(用列表创建的表达式依然可成功创建) g =tuple([random.randint(3,8) for j in range(3) ] for i in range(4)) print(g) print(g[1][2]) #单个元素 #横版输出古诗,纵版输出古诗 str1 = "千山鸟飞绝" str2 = "万径人踪灭" str3 = "孤舟蓑笠翁" str4 = "独钓寒江雪" #list1 = tuple((str1),(str2),(str3),(str4)) # 如果这样写会提示:TypeError: tuple() takes at most 1 argument (4 given) list1 = ((str1),(str2),(str3),(str4)) #正确写法,去掉tuple print('------------横向古诗-方法1------------') for itemh in list1: #每个子元组存在于元组中 for item in itemh: #每个字存在于子元组中 if itemh.index(item) ==4: #子元组中最后一个字换行打印,其余不换行打印 print(item) else: print(item,end='') print('------------横向古诗-方法2------------') for i in range(4): #每个子元组存在于元组中 for j in range(5): #每个字存在于子元组中 if j==4: #子元组中最后一个字换行打印,其余不换行打印 print(list1[i][j]) else: print(list1[i][j],end='') print('------------纵向古诗-方法1------------') list2 = tuple(reversed(list1)) #倒叙古诗句子 for i in range(5): for j in range(4): if j ==3: print(list2[j][i]) else: print(list2[j][i],end='') #元组常需注意内容 #①如果只有一个元素,记得加逗号 print(type(('测试元组',)),' ',type(('测试元组'))) #结果:<class 'tuple'> <class 'str'> #②元组内元素不可添加、修改、删除、更换顺序等,但可对元素重新赋值。 '''③元组推导式,同列表基本一致,需要注意的是记得加上tuple()函数, 即:f = tuple(int(x*0.5) for x in d if int(x*0.5)%2==0)******注意:记得加上tuple()''' nubmer1 = (i for i in range(3)) print(type(nubmer1)) #<class 'generator'> nubmer = tuple(i for i in range(3)) print(type(nubmer)) #<class 'tuple'> print(nubmer1.__next__()) print(nubmer1.__next__()) print(nubmer1.__next__()) print(tuple(nubmer1)) #.__next__():遍历生成器对象后,无法再对nubmer1转化为tuple,结果:() #元组比列表的访问和处理速度快,元组可以作为字典中的键。