使用Python将数组的元素导出到变量中(unpacking)


Posted in Python onOctober 27, 2016

解决的问题

需要将数组(list)或元组(tuple)中的元素导出到N个变量中。

解决的方案

任何序列都可以通过简单的变量赋值方式将其元素分配到对应的变量中,唯一的要求就是变量的数量和结构需要和序列中的结构完全一致。

p = (1, 2)
x, y = p
# x = 1
# y = 2

data = ['google', 100.1, (2016, 5, 31)]
name, price, date = data
# name = 'google'
# price = 100.1
# date = (2016, 5, 31)

name, price, (year, month, day) = data
# name = 'google'
# price = 100.1
# year = 2016
# month = 5
# day = 31

如果变量结构和元素结构不一致,你将会遇到以下错误:

p = (1, 2)
x, y, z = p

Traceback (most recent call last):
 File "<pyshell#12>", line 1, in <module>
  x, y, z = p
ValueError: not enough values to unpack (expected 3, got 2)

其实这样的操作不限于元组和数组,在字符串中也是可以用的。Unpacking支持大多数我们常见的序列,比如文件迭代,各种生成器等等。

s = 'Hello'
a,b,c,d,e = s
# a = 'H'
# b = 'e'

如果导出过程中你想丢掉一些元素,其实Python并不支持这样的语法,不过你可以指定一些不常用的变量来达到你的目的。

data = ['google', 100.1, (2016, 5, 31)]
name, _, (_,month,_) = data
# name = 'google'
# month = '5'
# other fileds will be discarded

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能有所帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
跟老齐学Python之深入变量和引用对象
Sep 24 Python
python基于xml parse实现解析cdatasection数据
Sep 30 Python
Python中的深拷贝和浅拷贝详解
Jun 03 Python
python实现决策树
Dec 21 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
Jan 07 Python
python异常触发及自定义异常类解析
Aug 06 Python
centos7之Python3.74安装教程
Aug 15 Python
如何获取Python简单for循环索引
Nov 21 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
python已协程方式处理任务实现过程
Dec 27 Python
详解python metaclass(元类)
Aug 13 Python
Python 列表反转显示的四种方法
Nov 16 Python
Python中断言Assertion的一些改进方案
Oct 27 #Python
利用Python实现颜色色值转换的小工具
Oct 27 #Python
Python实现批量检测HTTP服务的状态
Oct 27 #Python
python解决网站的反爬虫策略总结
Oct 26 #Python
Python控制多进程与多线程并发数总结
Oct 26 #Python
Python网络爬虫项目:内容提取器的定义
Oct 25 #Python
Python实现ssh批量登录并执行命令
Oct 25 #Python
You might like
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
js中创建对象的几种方式示例介绍
2014/01/26 Javascript
jquery.post用法之type设置问题
2014/02/24 Javascript
jquery默认校验规则整理
2014/03/24 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
使用javascript实现判断当前浏览器
2015/04/14 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
深入理解jQuery()方法的构建原理
2016/12/05 Javascript
EditPlus中的正则表达式 实战(4)
2016/12/15 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
JavaScript函数基础详解
2017/02/03 Javascript
js实现适配不同的屏幕大小
2017/04/10 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
2017/05/22 Javascript
js读取本地文件的实例
2017/12/22 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
python实现的简单RPG游戏流程实例
2015/06/28 Python
Python计算斗牛游戏概率算法实例分析
2017/09/26 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
win10下python2和python3共存问题解决方法
2019/12/23 Python
Python代码注释规范代码实例解析
2020/08/14 Python
美国婚礼和派对礼品网站:Kate Aspen(新娘送礼会、迎婴派对)
2018/03/28 全球购物
幼儿园五一活动方案
2014/02/07 职场文书
班级文化标语
2014/06/23 职场文书
2015年见习期工作总结
2014/12/12 职场文书
高中同学会致辞
2015/08/01 职场文书
apache基于端口创建虚拟主机的示例
2021/04/24 Servers
mysql数据库入门第一步之创建表
2021/05/14 MySQL
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫
微软官方消息,在 2023 年 4 月 11 日之后微软将不再为 Office 2013 和 Skype for Business 2015 提供安全更新
2022/04/21 数码科技