元组拆包可以应用到任何迭代对象上, 唯一的要求是, 被可迭代对象中的元素数量必须要和这些元素的元组的空档数一致, 除非我们用* 来表示忽略多余的元素。

1. 最好辨认的元组拆包形式就是平行赋值, 也就是把一个可迭代对象里的元素, 一起赋值到由对应的变量组成的元组中。

平行赋值就像是这样:

lax_coordinates = (33.9425, -118.408056)

latitude, longitude = lax_coordinates #元组拆包

>>> latitude

33.9425

>>>longitude

-118.408056

另一种很优雅的写法不使用中间变量交换两个变量的值:

>>> b, a = a, b

还可以用 * 运算符把一个可迭代的对象拆开作为函数的参数:

>>> divmod(20, 8)

(2, 4)

>>>t = (20, 8)

>>> divmod(*t)

(2, 4)

>>> quotient, remainder = divmod(*t)

>>> quotient, remainder

(2, 4)

2.下面是一个例子, 这里的元组拆包用法则是让一个函数可以用元组的形式返回多个值, 然后调用函数代码就能轻松地接受这些返回值。比如os.path.split()函数就会返回以路径和最后一个文件组成的元组(path,last_part):

>>> import os

>>> _, filename = os.path.split('/home/luciano/.ssh/idrsa.pub')

>>> filename'idrsa.pub'

在进行拆包的时候,我们对不感兴趣的数据可以用 _占位符处理,上面的例子也是这个用法, 但是如果是国际化软件, 那么_可能就不是一个占位符,因为这个也是gettext.gettext函数的常用别名,gettext模块的文档里就提到这一点。

3.用*来处理剩下的元素

在python中, 函数用*args 来获取不确定数量的参数是一种经典写法,在python3中,这个概念被扩展到了平行赋值中:

>>> a, b, *c = range(5)

>>> a, b, c(0, 1, [2, 3, 4])

>>> a, b, *c = range(3)

>>> a, b, c(0, 1, [2])

在平行赋值中, *前缀只能在一个变量名前面, 但是这个变量可以出现在赋值表达式的任意位置。

python元组元素的提取_Python 元组拆包相关推荐

  1. python元组元素的提取比_Python 元组数据类型(tuple)详解 [访问元组元素][修改元组元素][删除元组][学习 Python 必备基础知识][看此一篇就够了]...

    您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 1 元 ...

  2. python二维元组元素的提取_如何从元组列表中提取第n个元素?

    我在寻找以最快的方式提取2元组列表的第二个元素时发现了这一点.不是我想要的,但是运行了与第3种方法所示相同的测试,并测试了zip方法 setup = 'elements = [(1,1) for _ ...

  3. python的元祖类型_python元组类型

    元组类型简介 使用括号包围的数据结构是元组(tuple).例如: >>> (1,2,3) (1, 2, 3) >>> T = (1,2,3,) >>&g ...

  4. python元组添加元素_Python 元组_python元组操作_添加元素_python 元组转字符串

    Python 元组 Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 如下实例: tup1 ...

  5. python元组有什么用_python元组是什么意思

    python元组(tuple)是一个不可变的序列.Python元组和Python列表数据类似,都是线性表.唯一不同的是,Python元组赋值后所存储的数据不能被程序修改,可以将元组看作是只能读取数据不 ...

  6. python元组有啥用_python元组是什么?python元组的用法介绍

    本篇文章给大家带来的内容是关于python元组是什么?python元组的用法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 元组是什么? 你可以把它看作是只读的列表,因为元组不可 ...

  7. python元组有啥用_python元组的用法

    1.什么是元组 同list一样,允许存放若干任意类型数据的容器 但是元组是不可变的序列 2.语法 元组是使用()括起来,()内允许盛放若干元素,如果只放一个元素的话,元素后要加 , 用于区分对象还是元 ...

  8. python文本分析和提取_python文本分析和提取 Python 文本内容指定字段提取

    使用python对txt文本进行分析和提取 首先,打开计算机上的pycharm编辑器,如下图所示,然后进入下一步. 开学以后,小编没有碰过电脑,第一次,这就说明了开学是多么的可怕 其次,完成上述步骤后 ...

  9. python列表元素交换位置_python删除列表元素5种方法,你会的是错误法还是最优解?...

    删除列表元素很多同学想当然的认为不就是循环遍历加上if判断再del吗?真的有这么简单吗? 还是直接上代码看案例吧: import time# 删除下面列表中所有张姓元素,输出的结果应该是['李老大', ...

最新文章

  1. Python 之 Numpy (二)array
  2. loadrunner-4-3报告摘要
  3. 笑死!“盒马”把自己的ID给玩没了...
  4. Django 权限管理-后台根据用户权限动态生成菜单
  5. priority_queue+贪心:运输(题解)
  6. 了解播放过滤器API
  7. 写给Java开发者看的JavaScript对象机制
  8. EAT/IAT Hook
  9. 反射 getDeclaredMethod和getMethod的区别以及用法《实例》
  10. 从一片空白到世界领先,中国通信翻身逆袭史
  11. html返回顶部代码(简单)
  12. C语言入门教程(一)
  13. Intellij Idea插件开发点滴记录
  14. 关于tomcat下startup.bat双击闪退的问题
  15. 青岛租房 不知道租哪儿,手动做的租房地图。
  16. 显卡的结构和工作原理及发展历史与现状
  17. Windows系统NodeJs安装及环境配置
  18. windows系统多线程同步机制原理总结
  19. 识别图片中的文字(ocr)
  20. IoGetDeviceProperty 例程

热门文章

  1. 【嵌入式05】Ubuntu下opencv新手操作:(打开图片及视频)
  2. 深析SpringCloud与Docker微服务架构
  3. PostgreSQL练习
  4. 特斯拉、华为们要用软件重新定义汽车?
  5. Spark数据分区(partitionBy分区、partitioner获取分区方式、自定义分区)
  6. 基于Linux平台的TCP通信并发服务器---在线英语词典项目
  7. 2017-10-20 西电 新一代人工智能与深度学习“国际”研讨会第一天见闻
  8. 游戏服务器框架概括分析
  9. 支撑小米万亿级的消息队列架构与实践
  10. 开源阅读书源_开源阅读畅读全网图书 有声读物