python元组知识点
在这里我将用最直白最不绕弯子的方式给大家提供元组的知识点讲解。所有的内容都是我自己的理解和总结保证不抄袭完整有效。希望看完这篇内容你能更了解元组来不及看完也没关系收藏起来慢慢看哇好了废话不多说咱们开学→一、定义元组是序列的一个类型具备有序、不可变等特点格式就是用小括号()包裹元素元素可以是任意数据类型数字、字符串、列表、元组等。元组的几个创建方式如下创建方式 x1(1,2,abc,[3,4]) #标准括号创建 x21,2,3,4 #省略括号创建注意逗号才是元组的核心标志 x3(1,) #单个元素的元组必须要在元素后面增加一个逗号否则x3(1),只是整数二、性质1.不可变性这里的不可变指元组的直接元素不能被改变和增加但如果元素是可变对象那么也能改变举个例子⬇️x(1,2,3) print(x.append(4)) #报错 x([1,2,3]) print(x.append(4)) print(x) #[1,2,3,4] x(1,[2,3],4) print(x[1].append(5)) print(x) #(1,[2,3,5]4)2.有序性元组和列表一样都具备下标索引值每个元素有自己的索引值这是一个包含各种元素的元组 x(1,abc,[2,3],4)每个元素对应的索引值如下元素1abc[2,3]4正向索引对应的下标索引值0123反向索引对应的下标索引值-4-3-2-13.允许重复元素一个元组里面可以同时有多个相同的元素。x(1,2,1,3,4)4.支持任意类型混合存放一个元组里面可以同时有字符串、列表等序列类型存在。x(1,abc,[2,3],4)5、可哈希简单来说就是可调用hash(对象)且不报错就是可哈希对象。hash((1,2,3)) #不报错纯不可变元组可哈希 hash((1,[2,3])) #报错有可变对象的元组不可哈希三、下标与切片和列表方法相同1.下标利用下标索引值取相应的元素x(10,20,30,40) print(x[0]) #10 print(x[-1]) #40 print(x[7]) #取值大于最大下标索引值报错2.切片学好切片知识相当于学好一半以上的元组和列表啦~切片格式如下⬇️x[start:end:step]切片的操作生成的是新的元组而不是改变原元组切记元组是不可变对象当然列表也一样原列表也不会受到影响。以防大家还没学过列表的切片方法这里再整理一下。x(1,2,3,4,5,6) print(x[0:2]) #(1,2,3) print(x[0:5:2]) #(1,3,5)取步长为2的元组 print(x[:2]) #(1,2,3)冒号前面省略就是从头开始取值 print(x[2:]) #(3,4,5,6)当然冒号后面省略也是一个意思 print(x[:]) #(1,2,3,4,5,6)只有一个冒号就是全选^_^ print(x[::-1]) #(6,5,4,3,2,1)步长为-1的话就是将整个元组反转切片是一个非常方便的方法大家要好好学呀~四、元组的运算虽然元组是不可变对象但我们依旧可以利用运算符来生成新元组。1.拼接运算符x(1,2) y(3,4) zxy print(z) #(1,2,3,4)2.重复运算符*x(1,2) yx*3 print(y) #(1,2,1,2,1,2)3.判断运算符in/not in判断运算符可判断元素是否存在元组中x(1,2,3) 3 in x #True y(4,5,6) 3 not in y #True4.比较运算符、、、、、!元组比较大小本质是从第一个元素开始比较直到区分出两个元组的大小。但前提是两个元组之间的元素必须是可互相比较的类型若类型不兼容则会直接报错。①元组按ASCII 编码值逐字符比较一般来说我们都只比较数字和英文字母数字编码 大写英文字母 小写英文字母print((apple,)(banana,)) #True print((A,999)(B,1)) #True,第一项相互比较能出结果就不会比较第二项 print((A,)(a,)) #True②元组按长短比较若两个元素的前几个字母相同那么就比较元素的长短。print((He,)(Hello,)) #True,两个元素字母相同的情况下元素越短越小若两个元组的前几个元素相同那么就比较元组的长短。print((1,2)(1,2,ab)) #True,元组越短越小③不能跨类型比较print((10,)(10,)) #报错两个不同类型的元素之间不能比较大小④嵌套型元组比较自动递归拆开内层元组逐个元素之间比较x(1,2,(3,4)) y(1,2,(3,5)) print(xy) #True⑤特殊的布尔值众所周知布尔的本质是int类型True1False0所以布尔的比较不是字母比较大小而是比较数字0和1。print((False,)(1,)) #True print((False,)(True,)) #True(01) print((0,)(True,)) #True五、元组的内置函数序号函数作用示例①len(tuple)获取元组的长度t(1,2,3,4) print(len(t)) #4②max(tuple)返回元组可比元素的最大值t(1,3,5,7) print(max(t)) #7③min(tuple)返回元组可比元素的最小值t(1,3,5,7) print(min(t)) #1④sum(tuple)数值元组求和t(1,3,5,7) print(sum(t)) #16⑤sorted(tuple)返回列表并自动排序不改变原元组t(3,5,2,6) print(sorted(t)) #[2,3,5,6]六、元组自带方法受元组内部元素不可变的影响元组不易改动因此元组所含的方法也相对较少。序号方法作用示例①tuple.count(x)统计元组内元素x的出现次数t(1,2,2,3,2,4) print(t.count(2)) #3②tuple.index(x, start, end)查找元素x第一次出现的下标索引值若找不到x则报错t(1,2,3,4) print(t.index(2)) #1七、元组的解包把元组中每一个元素一次性赋值给多个变量这个过程叫元组解包。元组解包实现的基础前提是——变量数量等于元组个数两者一一对应。1.经典解包比较常用的就是两个变量之间的交叉互换。x2 y3 x,yy,x print(x,y) #3 2此过程的理解就是我们先将x,y打包成元组(2,3)接着再解包赋值给y,x2.“废弃变量”的解包通常情况下我们用“_”来代替不需要赋值的变量我们将这个变量称为废弃变量。x(10,20,30) a,_,cx print(a,c) #10 303.不定长元组解包当一个元组足够长时我们一般无法知晓元祖的长度和元素的个数这种情况下我们用一部分变量 *变量接收剩余所有元素生成结果是列表。x(1,2,3,4,5,6) one,*t,lastx print(t) #[2,3,4,5] print(one) #1注意一个解包语句只能有一个*若出现两个及两个以上则代码报错。当然在特定情况下赋值对象也可以只有一个*变量x(1,2,3) print(*x) #1 2 34.嵌套元组解包根据元组的嵌套规律拆解应赋值的元素即可x(1,2,(3,4)) a,b,(c,d)x print(a,b,c,d) #1 2 3 4八、类型转换在数据类型中大多数类型之间都是可以相互转换的。1.元组→其他序号转换类型方法示例①元组→列表list()x(1,2,3) tlist(x) print(t) #[1,2,3]②元组→字符串str()x(1,2,3) tstr(x) print(t) #(1,2,3)③元组→字符串.join ()x(a,b,c) t.join(x) print(t) #abc④元组→集合set()x(1,1,2,3,4) tset(x) print(t) #{1,3,2,4},集合具有不重复性和无序性⑤元组→字典dict()字典需要两两配对所以要变成字典需要元组内部两两一组 x((name,小明),(years,10)) tdict(x) print(t) #{name:小明,years:10}2.其他→元组序号转换方法示例①字符串→元组tuple()xhello ttuple(x) print(t) #(h,e,l,l,o)②列表→元组tuple()x[1,2,3,4] ttuple(x) print(t) #(1,2,3,4)③集合→元组tuple()x{1,2,3,4} ttuple(x) print(t) #(1,2,3,4)④range对象→元组tuple()xrange(1,6) ttuple(x) print(t) #(1,2,3,4,5)⑤字典→元组tuple()x{x:10,y:20} ttuple(x) print(t) #(x,y),字典转换成元组默认只提取字典的key值(冒号前面的值) ytuple(x.items()) print(y) #(10,20),利用items方法可以提取字典的键值对(冒号后面的值)总结好了以上就是全部的元组方法了如果你提前学习了列表的知识点会发现元组的知识和列表的知识实质上大差不差但元组和列表并不能混为一谈。不论你是学生、打工人、忙忙碌碌的陌生人我都希望你已经掌握这个小小的知识点希望本博客能祝你一臂之力给你提供到一点点帮助。最后本博客可能未及时发现一些错误或漏洞如果你发现了这些错误感谢及时纠错

相关新闻