详解python 拆包可迭代数据如tuple, list

yipeiwu_com6年前Python基础

拆包是指将一个结构中的数据拆分为多个单独变量中。

以元组为例:

>>> a = ('windows', 10, 25.1, (2017, 12, 29))

假设数据的意思是购买windows 10 份, 每份价值25.1刀。数据获取时间是2017年12月29日。

我们需要获取该数据中每份的价格:

>>> a[2]

也可以使用拆包的方法:

>>>os_type, number, price, dat = a
>>>price

注意的问题拆包对象必须是可迭代的比如tuple和list。

第二个问题:我们只关心价格和日期,不关心系统和数量:

用一个不使用的变量,然后通过适配符号*,统配前两项。

>>> *_, price, dat = a
>>> price
>>>dat

第三个问题,如果我们只关心价格和月份,如何解开包?

>>> *_, price, (_, m, d) = a
>>> price
>>> m

注意解包在python中都支持,但是使用*统配多个数值python3中开始支持。所以使用*时候注意python版本信息。

问题: 如果左边和右边个数不匹配,没有使用*,结果会是什么:

ValueError: too many values to unpack

>>> _, 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,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!

相关文章

Python无损音乐搜索引擎实现代码

Python无损音乐搜索引擎实现代码

  研究了一段时间酷狗音乐的接口,完美破解了其vip音乐下载方式,想着能更好的追求开源,故写下此篇文章,本文仅供学习参考。虽然没什么技术含量,但都是自己一点一点码出来,一点一点...

对Python 多线程统计所有csv文件的行数方法详解

如下所示: #统计某文件夹下的所有csv文件的行数(多线程) import threading import csv import os class MyThreadLine(t...

Python生命游戏实现原理及过程解析(附源代码)

Python生命游戏实现原理及过程解析(附源代码)

1. 生命游戏是什么 生命游戏是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞。一个细胞在下一个时刻生...

python构建自定义回调函数详解

回调函数用起来比较爽。特别是在js中,满世界全是回调,那么在python中,怎么来优雅地实现自己的回调函数呢 下面贴一个我写的例子 class BaseHandler(object)...

Djang中静态文件配置方法

Djang中静态文件配置方法

下面通过图文并茂的方法给大家详细介绍下Djang中静态文件配置方法 一、django静态文件配置原理 静态文件配置就是为了让用户请求时django服务器能找到静态文件返回。 首先要理解几...