使用Python将数组的元素导出到变量中(unpacking)
作者:daisy 时间:2022-01-12 10:11:43
解决的问题
需要将数组(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,数组,元素
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
CSS中背景background的一些语法
2009-03-24 21:02:00
谈谈设计师的发展
2009-03-17 18:20:00
网站重构 CSS样式表的优化技巧
2009-05-12 11:51:00
添加到各大流行网摘 书签的代码
2008-04-20 14:15:00
详解Bagging算法的原理及Python实现
2021-06-10 00:20:41
![](https://img.aspxhome.com/file/2023/9/77909_0s.jpg)
Django框架中方法的访问和查找
2022-07-23 16:31:35
CSS系统默认颜色
2009-01-04 16:53:00
jQuerify书签
2008-06-16 12:16:00
asp如何更好地保护我的网页?
2009-11-22 19:29:00
Django model反向关联名称的方法
2021-03-06 17:21:28
django中只使用ModleForm的表单验证
2021-02-03 15:41:50
设计能力决定权力
2009-06-16 14:48:00
![](https://img.aspxhome.com/file/UploadPic/20096/16/d-68s.jpg)
基于python中staticmethod和classmethod的区别(详解)
2023-09-30 22:03:32
Oracle 数据显示 横表转纵表
2009-07-26 08:57:00
用 Schema 约束 XML 数据
2010-08-24 18:21:00
![](https://img.aspxhome.com/file/UploadPic/20108/24/20100814231755976-28s.gif)
ASP自动清除ACCESS数据库的日文字符
2007-11-28 17:40:00
Oracle新建用户、角色,授权,建表空间的sql语句
2012-07-11 15:39:24
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2023-11-24 06:26:11
PHP Laravel实现文件下载功能
2023-11-18 12:20:27
Oracle Session每日统计功能实现
2023-07-22 09:47:24
![](https://img.aspxhome.com/file/2023/7/64087_0s.png)