Python元组拆包

Python020

Python元组拆包,第1张

什么叫元组拆包?

将元组内的元素,依次分配赋值给变量。

拆包有个要求,元组中的元素数量必须跟接受这些元素的空挡数一致,否则会报错:

这样就只获取到部分数据了,这在取函数返回值时特别有用,比如:

当返回值特别多时,_占位符写起来麻烦,可以用*来处理剩下的元素

*c是个列表,如果没有足够的值,就会返回一个空列表

*前缀变量能放在任意位置

*还有一个作用,把元组拆开作为函数参数,经典写法*args就是这个道理

嵌套元组是指元组中有元组,比如(1, 2, 3, (4, 5)),对于嵌套元组,你可能会想要拆两遍:

实际上能一步到位:

元组拆包提供了语法糖,对于交换两个变量的值的常规写法:

优雅写法

元组是不可变的,即元组的项不能被修改。元组用圆括号“()”括起来,并用逗号“,”来分隔其中的项。

例如,下面的元组包含了三个不同数据类型的项:

与列表不同的是,元组一旦创建就不可修改,如果尝试修改,Python解释器会报错:

元组是一种序列类型,因此,上一节介绍的通用序列操作元组也都支持,此处不再赘述。下面要介绍的是元组的另外一些用法或特性。

1、 创建元组

在创建元组时,可以不用加圆括号(除非它是其他数据类型的一部分,如一个在列表中的元组,此时必须加圆括号):

可以使用元组的工厂函数tuple()创建元组。如果要创建一个空的元组,可以使用不包含任何项的圆括号或者是没有参数的tuple()函数:

tuple()函数也可以有参数,且参数必须为可迭代对象:

创建只有一个项的元组时有个“小陷阱”,即用圆括号创建元组时,如果括号中只有一个项,而没有逗号,那么创建的并不是元组,而是这个项本身的类型:

创建只有一个项的元组,应该在该项的后面紧跟着一个逗号(或者使用tuple()函数):

2、 嵌套元组

元组与列表一样,可以嵌套,同样元组中也可以包含列表:

关于Python的基础问题可以看下这个网页的视频教程,网页链接,希望我的回答能帮到你。