当前位置:   article > 正文

python 中关于元组为什么有时候有括号有时候没有括号

python 中关于元组为什么有时候有括号有时候没有括号

元组的装包与拆包

Python中,元组装包拆包是自动的,不需要任何函数,导致很多人对于函数返回值一会有括号一会没括号非常迷惑

先看代码:

a=1,2,3
#它其实等价于下面的代码
a=(1,2,3)
#因为等号左边只有1个变量,而等号右边有3个值,因此自动装包成为一个元组
  • 1
  • 2
  • 3
  • 4

再看下面的代码:

a,b,c=(1,2,3)
#自动拆包,得到a=1,b=2,c=3
  • 1
  • 2

当函数return的时候,其实只能return一个值,并不能return多个值

有人会问,我return了多个值也没有报错啊,运行很正常

那正是因为Python将多个返回值自动装包造成的

因此当你返回多个变量,而外面只用一个变量去接收,会接收到一个元组

而当你用多个变量去接,就能对应的接收到每个值,这是因为自动拆包

理解了这一点,对于理解函数返回值、字典中的键值对等等都是有帮助的

为了加强理解,再看最后一组代码:

a=10
b=20
a,b=b,a,1
  • 1
  • 2
  • 3

执行会报错:too many values to unpack

这里很明显的,告诉你元组里有3个值需要拆包,而你只用2个值去接收,证明了元组确实执行了一个拆包的动作

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/164247
推荐阅读
相关标签
  

闽ICP备14008679号