美文网首页Python小哥哥
Python:列表也能拆包?

Python:列表也能拆包?

作者: 我爱学python | 来源:发表于2019-06-13 15:14 被阅读11次

前几天,看书时遇到了这样一个问题,看下图:

这是常用的 matplotlib 库,只是一般我们调用 plot 方法绘图时,不会去关心它的返回值。然而 plt1, = plt.plot(...) 这种写法是什么意思?被赋值的变量和赋值符号之间多了个逗号。

我的确从来没关心过 plot 函数的返回值是什么,所以当我看到这个截图的时候,第一反应是以为返回值有多个,代码只取了第一个,剩余的被忽略了。这种情况一般都是用 _ 做占位符,来忽略不关心的值。

占位符 _ 也可以省略吗?我迅速打开 PyCharm 验证了一把,事实证明,_ 不可以省略,我的想法是错了。

为了查明原因,我去查了 matplotlib 的源码,发现 plot 函数返回的是一个列表,源码如下:

我这才反应过来,这是列表拆包啊。变量后面的逗号,是因为返回的列表中只有一个元素,所以拆包的时候变量后面要加个逗号,标明这是拆包,不是赋值。

代码中,我们用的比较多的是元组拆包,各种书里也多是讲元组拆包,所以忽略了列表也是可以拆包的。看下面的例子:

不仅是元组和列表,所有可迭代对象都可以拆包。我们可以自定义一个可迭代对象(只需要实现其协议即 __iter__ 方法即可),来验证一下,代码如下:

相关文章

  • Python:列表也能拆包?

    前几天,看书时遇到了这样一个问题,看下图: 这是常用的 matplotlib 库,只是一般我们调用plot方法绘图...

  • react-native 性能优化

    拆包优化网络优化列表优化

  • 2020-06-03

    1.列表推导和生成器表达式: 实例: 2.元组的经典实用: 3.拆包元组:用*运算符 4.python也可以这样格...

  • 2018-10-21 022 元组进阶 B

    嵌套元组拆包 元组不仅可以作为列表的元素出现,也可以作为另一个元组的其中一个元素出现,此时也可以嵌套拆包——换言之...

  • python拆包

    什么情况下需要用到拆包? 当我们的函数需要传入不定长参数或者多个参数时,为了方便我们可以将参数放在list/tup...

  • python 《第二谈》

    环境:mac os x 1、创建简单的python列表 先从简单的颜色列表入手: 上面列表,用python能理解的...

  • 常用python组件包

    基于python3.6安装的组件包列表 Python Windows Binaries 库下载地址 Unoffic...

  • 2019-06-21

    python元素,变量,列表,元组,布尔类型 1.python3和pychram安装包,pycharm是控制台 链...

  • python内建数据结构、函数及文件

    元组拆包*rest方法:在函数调用时获取任意长度的位置参数列表: append方法将元素添加到列表尾部。inser...

  • python生成器的简介

    用过python的人都知道,在python中利用列表生成器能快速创建出一个列表。但是列表生成器也有它的局限性。其一...

网友评论

    本文标题:Python:列表也能拆包?

    本文链接:https://www.haomeiwen.com/subject/tudsfctx.html