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

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

以元组为例:

>>> 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 "", line 1, in

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

ValueError: too many values to unpack (expected 3)

总结

以上所述是小编给大家介绍的python 拆包可迭代数据如tuple, list,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

时间: 2017-12-27

前言 最近重新再看python的基础知识,感觉自己还是对于这些知识很陌生,需要用的时候还是需要翻书查阅,还是先注重基础吧--我要重新把python的教程阅读一遍,把以前自己忽略的部分学习,加强练习和记忆. 现在读到了列表(list).元组(tuple).集合(set)和字典(dict)四种在python内置的重要的数据结构.我只是想记录一下列表(list)和元组(tuple)比较容易搞混的地方和阐述一遍列表(list)和元组(tuple)比较常用的一些方法. 列表(list)与元组(tuple)

本文深入剖析了python中dict,set,list,tuple应用及对应示例,有助于读者对其概念及原理的掌握.具体如下: 1.字典(dict) dict 用 {} 包围 dict.keys(),dict.values(),dict.items() hash(obj)返回obj的哈希值,如果返回表示可以作为dict的key del 或 dict.pop可以删除一个item,clear清除所有的内容 sorted(dict)可以把dict排序 dict.get()可以查找没存在的key,dict

Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, tuple, dict, set.这里对他们进行一个简明的总结. List 字面意思就是一个集合,在Python中List中的元素用中括号[]来表示,可以这样定义一个List: L = [12, 'China', 19.998] 可以看到并不要求元素的类型都是一样的.当然也可以定义一个空的List: L = [] Python中的List是有序的,所以要访问List的话显然

sequence 序列 sequence(序列)是一组有顺序的对象的集合.序列可以包含一个或多个元素,也可以没有任何元素. 我们之前所说的基本数据类型,都可以作为序列的对象.对象还可以是另一个序列.序列有两种:list (表) 和 tuple(元组) . list和tuple的主要区别在于,一旦建立,tuple的各个元素不可再变更,而list的各个元素可以再变更. List 获得list元素的个数: 复制代码 代码如下: >>> lst=['更新慢','python',5.44,Fals

本文实例讲述了Python序列对象与String类型内置方法.分享给大家供大家参考,具体如下: 前言 在Python数据结构篇中介绍了Python的序列类型数据结构,这次继续深入的学习序列和String类型对象的内建方法. 软件环境 系统 UbuntuKylin 14.04 软件 Python 2.7.3 IPython 4.0.0 序列类型 序列类型,即由整数进行索引的对象的有序集合.其中又可以分为下面两类: 可变序列:列表,支持元素的插入.删除.替换 不可变序列:元组.字符串 序列的操作方法

python序列类型包括哪三种 python序列类型包括:列表.元组.字典 列表:有序可变序列 创建:userlist = [1,2,3,4,5,6] 修改:userlist[5] = 999 添加:userlist.append(777) 删除:userlist.remove(4) 或者 del(userlist[3]) pop方法:移除一个元素,默认为最后一个. userlist.pop(3)移除第三个元素,并且返回该值. 插入:userlist.insert(3,555) 排序:userl

最近在做Python 的项目,特地整理了下 Python 序列的方法.序列sequence是python中最基本的数据结构,本文先对序列做一个简单的概括,之后简单讲解下所有序列都能通用的操作方法. 任何序列都可以引用其中的元素(item). 下面的内建函数(built-in function)可用于列表(表,定值表,字符串) #s为一个序列 len(s) 返回: 序列中包含元素的个数 min(s) 返回:序列中最小的元素 max(s) 返回:序列中最大的元素 all(s) 返回:True,若果所

本文实例讲述了Python合并两个字典的常用方法与效率比较.分享给大家供大家参考.具体分析如下: 下面的代码举例了5种合并两个字典的方法,并且做了个简单的性能测试 #!/usr/bin/python import time def f1(d1, d2): return dict(d1, **d2) def f2(d1, d2): return dict(d1.items() + d2.items()) def f3(d1, d2): d = d1.copy() d.update(d2) retu

简介 Python 的序列(sequence)通常指一个可迭代的容器,容器中可以存放任意类型的元素.列表和元组这两种数据类型是最常被用到的序列,python内建序列有六种,除了刚刚有说过的两种类型之外,还有字符串.Unicode字符串.buffer对像和最后一种xrange对像,这几种都是不常使用的.本文讲解了列表推导式.切片命名.列表元素排序.列表元素分组的使用方法.学习了 Python 基本的列表操作后,学习这些进阶的操作,让我们写出的代码更加优雅简洁和 pythonic . 列表推导式 当

第一种方法:特点是直接.容易理解,缺点是速度慢,只能实现循环左移. def demo(lst, k): temp = lst[:] for i in range(k): temp.append(temp.pop(0)) return temp 第二种方法:特点是速度快,并且自适应循环左移(k>0)和右移(k<0),缺点是涉及到算法,不容易理解. def demo(lst, k): x = lst[:k] x.reverse() y = lst[k:] y.reverse() r = x+y r

Python中内置了list集合与tuple集合,在list集合中可以实现元素的添加.修改.插入.以及删除.tuple集合看似与list类似,但两者还是有很大的区别. 在tuple集合中,一旦元素被存储,以后就不能修改,删除了,这比list集合安全许多,所以能用tuple就用tuple.以下是list集合代码实现. L=['Java','Python','C++'] #注意,这里用的是中括号来表示list集合 L.append('PhP')#元素的添加 print(L[-1])#查找最后一个元素

打包 如给出一系列由逗号分隔的表达式,他们将被视为一个单独元组,即使没有提供封闭的圆括号 如: numbers = 1, 2, 3, 4 使numbers被赋值元组(1, 2, 3, 4) return a, b 返回元组(a, b) 解包 Python可以自动解包一个序列,润许单个标识符的一系列元素赋值给序列中的各个元素,如: a, b, c, d = range(1,5) a = 1, b = 2, c = 3, d = 4 quotient, remainder = divmod(a, b

python列表拆包_详解python 拆包可迭代数据如tuple, list相关推荐

  1. python归一化处理_详解python实现数据归一化处理的方式:(0,1)标准化

    在机器学习过程中,对数据的处理过程中,常常需要对数据进行归一化处理,下面介绍(0, 1)标准化的方式,简单的说,其功能就是将预处理的数据的数值范围按一定关系"压缩"到(0,1)的范 ...

  2. python xlrd安装_详解python中xlrd包的安装与处理Excel表格

    一.安装xlrd 地址 下载后,使用 pip install .whl安装即好. 查看帮助: >>> import xlrd >>> help(xlrd) Help ...

  3. python namedtuple用法_详解Python中namedtuple的使用

    namedtuple是Python中存储数据类型,比较常见的数据类型还有有list和tuple数据类型.相比于list,tuple中的元素不可修改,在映射中可以当键使用. namedtuple: na ...

  4. python操作目录_详解python中的文件与目录操作

    详解python中的文件与目录操作 一 获得当前路径 1.代码1 >>>import os >>>print('Current directory is ',os. ...

  5. python模式匹配算法_详解Python 最短匹配模式

    问题 你正在试着用正则表达式匹配某个文本模式,但是它找到的是模式的最长可能匹配. 而你想修改它变成查找最短的可能匹配. 解决方案 这个问题一般出现在需要匹配一对分隔符之间的文本的时候(比如引号包含的字 ...

  6. python opencv 直方图均衡_详解python OpenCV学习笔记之直方图均衡化

    本文介绍了python OpenCV学习笔记之直方图均衡化,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/d5/daf/tutorial_py_hi ...

  7. python制作界面_详解python做UI界面的方法

    详解python做UI界面的方法 更新时间:2019年02月27日 14:44:34 投稿:laozhang 在本文里我们给大家整理了关于python做UI界面的方法和具体步骤,对此有需要的朋友们可以 ...

  8. python gil 解除_详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案

    先看一道GIL面试题: 描述Python GIL的概念, 以及它对python多线程的影响?编写一个多线程抓取网页的程序,并阐明多线程抓取程序是否可比单线程性能有提升,并解释原因. GIL:又叫全局解 ...

  9. python udp编程_详解python UDP 编程

    前面我们讲了 TCP 编程,我们知道 TCP 可以建立可靠连接,并且通信双方都可以以流的形式发送数据.本文我们再来介绍另一个常用的协议–UDP.相对TCP,UDP则是面向无连接的协议. UDP 协议 ...

最新文章

  1. 区块链基础知识系列 第二课 区块链共识算法
  2. idea pycharm设置鼠标滚轮改变字体大小的方法
  3. es 指定排序字段_ES里多字段分组后排序
  4. android平板安装python_Notepad++配置Python开发环境
  5. mysql同步表到本地_sql 同步远程数据库(表)到本地
  6. apache wicket_Apache Wicket:记住我的功能
  7. 给xen虚拟机添加硬盘分区格式化
  8. 5_Windows下利用批处理切换IP地址
  9. python程序怎样在手机上_python手机文件怎么上传至电脑?
  10. 按键精灵怎么用 android,按键精灵安卓版怎么用
  11. 数据抓包+hijson
  12. openGL天空盒实现-立方体贴图
  13. 高效能人士的七个习惯读后感与总结概括-(第六章)
  14. 计算机内部可以用哪两种处理器封装类型,电脑CPU处理器封装形式大盘点
  15. 计算机网络方向研究课题,计算机网络安全技术方向论文选题 计算机网络安全技术论文题目如何定...
  16. 2020数学建模医疗和养老保障问题解决办法
  17. Cesium平台构建诗词地图故事
  18. 为什么需要职场软实力
  19. 个人看法---如何做一个视频聊天室?
  20. igh ethercat应用层代码分析

热门文章

  1. 考研调剂途径方法和规则要求
  2. 华为智慧屏 鸿蒙如何获得,华为智慧屏鸿蒙UI系统获得2020德国红点设计大奖
  3. 苹果手机突然黑屏_手机突然黑屏该怎么办?别慌张,你可以这样解决!
  4. 对于Android不同项目使用同一工程时的板级设置
  5. 游侠联机不了服务器未响应,仁王联机补丁跳出问题解决方法 仁王游戏停止未响应怎么办-游侠网...
  6. sun服务器系统日志,Solaris简单系统巡检,日志查看
  7. 读书笔记 | 自动驾驶中的雷达信号处理(第8章 雷达目标识别与分类技术)
  8. 计算机毕设(附源码)JAVA-SSM家政服务预约小程序
  9. 怀念曾逝去的青春——记《大二信念和计划》
  10. 英语配音软件哪个好?快把这些软件收好