拆包是指将一个结构中的数据拆分为多个单独变量中。
以元组为例:
1
|
>>> a = ( 'windows' , 10 , 25.1 , ( 2017 , 12 , 29 ))
|
假设数据的意思是购买windows 10 份, 每份价值25.1刀。数据获取时间是2017年12月29日。
我们需要获取该数据中每份的价格:
1
|
>>> a[ 2 ]
|
也可以使用拆包的方法:
1
2
|
>>>os_type, number, price, dat = a
>>>price
|
第二个问题:我们只关心价格和日期,不关心系统和数量:
用一个不使用的变量,然后通过适配符号*,统配前两项。
1
2
3
|
>>> * _, price, dat = a
>>> price
>>>dat
|
第三个问题,如果我们只关心价格和月份,如何解开包?
1
2
3
|
>>> * _, price, (_, m, d) = a
>>> price
>>> m
|
注意解包在python中都支持,但是使用*统配多个数值python3中开始支持。所以使用*时候注意python版本信息。
问题: 如果左边和右边个数不匹配,没有使用*,结果会是什么:
ValueError: too many values to unpack
1
2
3
4
5
|
>>> _, price, ( * _, m, d) = a
Traceback (most recent call last):
File "<pyshell#10>" , line 1 , in <module>
_, price, ( * _, m, d) = a
ValueError: too many values to unpack (expected 3 )
|
总结
以上所述是小编给大家介绍的python 拆包可迭代数据如tuple, list,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://www.cnblogs.com/felixwa/p/8143310.html