元组特点:定义元组使用小括号,且逗号隔开各个数据,数据可以是不同的数据类型
成都创新互联公司成立与2013年,先为龙门等服务建站,龙门等地企业,进行企业商务咨询服务。为龙门企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
如果定义的元组只有一个数据也需要加逗号,否则数据类型为唯一的这个数据的数据类型
元组中的数据是不可以删除,修改的
如果要存储对个数据,但这些数据是不能修改的数据就使用元组
使用方法:
1、查找 元组数据不支持修改,只支持查找
按下标查找数据
index()
count()
len()
# 1,按下标查找数据
tuplel = ('aa','bb','cc','dd')
print(tuplel[0]) # aa
# 2,index():查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表,字符串的index方法相同
tuplel = ('aa','bb','cc','bb')
print(tuplel.index('aa')) # 0
# 3,count():统计某个数据在当前元组中出现的次数
tuplel = ('aa','bb','cc','bb')
print(tuplel.count('bb')) # 2
# 4,len()
print(len(tuplel)) # 4--tuplel 中有4个数据
2、修改
元组内的直接数据如果修改则立即报错
但是如果元组里面有列表,修改列表里面的数据则是支持的,
t1 = ('aa','bb','cc','dd')
# t1[0] = 'aaa' # 直接报错,列表数据不允许修改
t2 = ('aa','bb',['cc','dd'])
print(t2)
print(t2[2][0])
t2[2][0] = 'xiaoguai'
print(t2)
所以这篇文章,我们先来回顾和总结Python数据结构里常用操作。Python中常见的数据结构可以统称为容器(container)。序列(如列表和元组)、映射(如字典)以及集合(set)是三类主要的容器。而扁平序列如str、bytes、bytearray、memoryview 和 array.array等不在这篇文章的讨论范围内。
在此,我们先从元组开始说起。
元组区别于列表的显著特征之一就是它不能被修改,但其另外一个作用就是 用于没有字段名的记录 [1] 。因为后者经常被忽略,我们先来看看元组作为记录的作用。
使用括号就可以定义一个元组。元组中的每个元素都存放了记录中一个字段的数据,外加这个字段的位置。正是这个位置信息给数据赋予了意义。下面的例子中,元组就被当作记录加以利用:
输出为:
上述for循环中的操作提取了元组中的元素,也叫作拆包(unpacking)。平行赋值是对元组拆包很好的应用,示例如下:
还有一个经典而优雅的应用是交换变量的值:
用 * 运算符把一个可迭代对象拆开作为函数的参数,例如Python的内置函数pmod接收两个数字类型的参数,返回商和余数。以下范例将使用 * 将元组传入函数。
输出为:
有些函数有多个返回值,将其赋给一个变量时,变量类型即是元组:
输出为:
zip是Python的内置函数,能够接收两个或多个序列,并组成一个元组列表,在Python3中会返回一个迭代器,如下所示:
输出为:
元组当然也支持一些常规操作,如对于元组 a = (1, 'y', 5, 5, 'x') :
上述内容不仅涵盖了元组的基本操作,同时也结合了实际工作中常搭配使用的其他函数、运算符等。在回顾这些知识时主要参考了两本经典的Python编程书籍:《流畅的Python》和《像计算机科学家一样思考Python》,有兴趣的朋友可以深入阅读!
希望这篇文章对你有帮助,下回将总结Python列表的使用技巧。
[1]《流畅的Python》:
学习Python元组,有哪些必须要掌握的内容?
1.Python元组
定义
元组是Python的一种内建数据结构。关于元组:
1、元组属于序列,可以存放任意元素(任意类型对象),且有序(前后位置关系)。
2、元组支持整数索引访问其中的数据,也支持切片。
3、元组和列表不同是,元组不可变,列表可变。
元组不可变,某些操作比列表高效。
创建元组
可以用以下两种方法创建元组:
1、使用()创建
2、使用构造函数tuple()
图:使用()创建元组
使用()可以创建元组,元组元素间使用”,”分隔,元组内部元素可以是任意元素,也可以是元组。
图:创建元组代码示例
元组不可变除了不能修改,也不能删除元组元素,但删除与元组绑定的变量是没问题的。
图:元组不可变
使用()方式创建只有一个元素的元组时要注意,因为一个元素使用()括起来,表示元素本身,如100, (100),两者等价,如果创建只包含100的元组应该使用:(100,)方式。
图:使用()创建只有一个元素的元组
使用构造函数tuple()创建元组。了解更多信息可以使用help(tuple)来查看具体帮助内容。
图:tuple函数帮助
1、tuple()如果没有参数创建一个空元组。
2、tuple(可迭代对象) 由可迭代对象创建一个元组,如字符串,列表。如果参数是元组将返回该元组。
图:使用tuple函数创建元组
2.元组的访问
和字符串列表一样,元组支持使用整数索引(下标方式访问),也支持切片方式访问元组的元素。
下标索引如果是正整数则从0开始表示第一个元素,…… 最有一个元素用 元组长度-1表示;如果使用负整数做下标,-1表示最后一个元素,-2表示倒数第二个元素,…… 负的长度表示第一个元素。
!!!需要注意的是下标索引不能越界!!!
1、使用索引访问:
图:使用索引访问元组元素
2、切片访问:
图:使用切片访问元组
3.使用内建的常用函数操作元组
常用内建函数len、max、min、sum、reversed可以操作元组,函数解释如下:
操作示例如下:
注意事项:
使用min,max,sum函数操作元组,元组元素类型能被函数接受才可以,否则将报异常等错误。
4.元组常用方法
主要有count和index方法:
count返回元组中对应值的个数,index返回对应值的位置(索引)。
5.元组运算
元组支持 + 连接, * 复制运算,in /not in 运算
图:元组运算
6.序列
字符串,元组,列表都属于Python的序列结构,序列具有很多相同的属性和操作方法,如:序列中的每个元素被分配一个序号(位置,也叫索引),序号(索引)从0开始,依次类推;序列都支持切片操作等等。
图:序列通用操作
Python内置了多种序列结构:字符串、列表、元组、Unicode字符串、buffer对象、range对象。序列是Python中一种重要的数据结构,必须要掌握,也很容易掌握。
一:元组(tuple)
1、元组是不可改变的序列,同list一样,元组可以存放任意类型的元素,一旦元组生成,则它不可以改变(包括增、删、改)。
2、元组的表示方式:用小括号()括起来,单个元素括起来用逗号(,)区分是单个对象还是元组
3、元组的创建:
创建空元组的字符值:t=()
创建非空元组的字面值:
t=200,
t=(20,)
t=(1,2,3)
t=100,200,300
4、元组的构造函数(tuple)
A:tuple()生成一个空的元组,等同于()
B:tuple(iterable)用可迭代对象生成一个元组
示例:
t=tuple()
t=tuple(range(10))
t=tuple(‘hello’)
t=tuple([])
二:元组的用法
1、元组的算术运算:(用法与列表的用法完全相同)
+=**=
例:定义两个元组,与其相加,再用得到的新元组乘以2,与列表对比一下,看看有何不同?(分析:两原组相加,会把第二个元组的元素放在第一个元组元素的后面,两元组相乘,会重复原元组元素的个数,乘以几,就重复几次)
2、元组的比较运算:
====!=
3、in/not in
索引取值
切片取值
规则与列表完全相同
区别:
元组是不可变对象,不支持索引赋值和切片赋值
4、元组的方法
t.index(v[,begin[,end]])----用于获取元组中V所在的索引位置
t.count(v)----用于获取元组中V的个数
例:定义一个元组字面值,查看某个值在元组的索引位置,并统计其元组中某个数出现的个数。
5、元组中的三个构造函数和序列函数
Str(obj)
List(iterable)
Tuple(iterable)
序列函数:len,max,min,sum,all,any
元组是不可变的,即元组的项不能被修改。元组用圆括号“()”括起来,并用逗号“,”来分隔其中的项。
例如,下面的元组包含了三个不同数据类型的项:
与列表不同的是,元组一旦创建就不可修改,如果尝试修改,Python解释器会报错:
元组是一种序列类型,因此,上一节介绍的通用序列操作元组也都支持,此处不再赘述。下面要介绍的是元组的另外一些用法或特性。
1、 创建元组
在创建元组时,可以不用加圆括号(除非它是其他数据类型的一部分,如一个在列表中的元组,此时必须加圆括号):
可以使用元组的工厂函数tuple()创建元组。如果要创建一个空的元组,可以使用不包含任何项的圆括号或者是没有参数的tuple()函数:
tuple()函数也可以有参数,且参数必须为可迭代对象:
创建只有一个项的元组时有个“小陷阱”,即用圆括号创建元组时,如果括号中只有一个项,而没有逗号,那么创建的并不是元组,而是这个项本身的类型:
创建只有一个项的元组,应该在该项的后面紧跟着一个逗号(或者使用tuple()函数):
2、 嵌套元组
元组与列表一样,可以嵌套,同样元组中也可以包含列表:
关于Python的基础问题可以看下这个网页的视频教程,网页链接,希望我的回答能帮到你。