详解Python3 对象组合zip()和回退方式*zip

zip即将多个可迭代对象组合为一个可迭代的对象,每次组合时都取出对应顺序的对象元素组合为元组,直到最少的对象中元素全部被组合,剩余的其他对象中未被组合的元素将被舍弃。

keys = ['one', 'two', 'three']
values = [1, 2, 3]
d = zip(keys, values)
print(list(d))

示例结果:

[('one', 1), ('two', 2), ('three', 3)]

可以看到我们由 zip 模拟了一个类似字典的一一对应的元组迭代对象,并将其转化为 list 类型查看,当然我们可以利用获取迭代对象生成真正的键值字典:

keys = ['one', 'two', 'three']
values = [1, 2, 3]
d = zip(keys, values)
D = {}
for key, value in d:
  print(key, value)
  D[key] = value
print(D)

示例结果:

one 1
two 2
three 3
{'one': 1, 'two': 2, 'three': 3}

我们可以利用for循环迭代赋值给字典完成对应的键值映射,在Python3中我们还可以用一句话就可以完成 D = dict(zip(keys,values)) .

*zip

当我们想回退为迭代器组合之前的状态时,我们可以利用 * “解压”现在“压缩”过的新的迭代对象

keys = ['one', 'two', 'three', 'four']
values = [1, 2, 3]
d = zip(keys, values)
older = zip(*d)
print(list(older))

“解压”结果:

[('one', 'two', 'three'), (1, 2, 3)]

PS:Python3:zip()和*zip()函数

描述

  • zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组
  • *zip() 和zip()配合使用,具体看下面示例

Showing code by screenshot ~~

1. zip()

2. *zip()

总结

以上所述是小编给大家介绍的Python3 对象组合zip()和回退方式*zip,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • 浅谈Python中的zip()与*zip()函数详解

    前言 1.实验环境: Python 3.6: 2.示例代码地址:下载示例: 3.本文中元素是指列表.元组.字典等集合类数据类型中的下一级项目(可能是单个元素或嵌套列表). zip(*iterables)函数详解 zip()函数的定义 从参数中的多个迭代器取元素组合成一个新的迭代器: 返回: 返回一个zip对象,其内部元素为元组:可以转化为列表或元组: 传入参数:元组.列表.字典等迭代器. zip()函数的用法 当zip()函数中只有一个参数时 zip(iterable)从iterable中依次取

  • Python中zip()函数用法实例教程

    本文实例讲述了Python中zip()函数的定义及用法,相信对于Python初学者有一定的借鉴价值.详情如下: 一.定义: zip([iterable, ...]) zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表).若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同.利用*号操作符,可以将list unzip(解压). 二.用法示例: 读者看看下面的例子,

  • python3中zip()函数使用详解

    zip在python3中,处于优化内存的考虑,只能访问一次!!!(python2中可以访问多次),童鞋们一定要注意, * coding: utf-8 * zip()函数的定义:从参数中的多个迭代器取元素组合成一个新的迭代器: 返回: 返回一个zip对象,其内部元素为元组:可以转化为列表或元组: 传入参数: 元组.列表.字典等迭代器. 当zip()函数中只有一个参数时,zip(iterable)从iterable中依次取一个元组,组成一个元组. 在python 3.0中有个大坑,zip中的数据只能

  • python中zip()方法应用实例分析

    本文实例分析了python中zip()方法的应用.分享给大家供大家参考,具体如下: 假设有一个集合set, 需要对set中的每个元素指定一个唯一的id,从而组建成一个dict结构. 这个场景可以演化成,两个list/set或者一个set与一个list如何创建成为一个字典,如: A = ["a", "b", "c", "d"] B = [1, 2, 3, 4] ? ==> C = {"a":1, &qu

  • python中map()与zip()操作方法

    对于map()它的原型是:map(function,sequence),就是对序列sequence中每个元素都执行函数function操作. 比如之前的a,b,c = map(int,raw_input().split()),意思就是说把输入的a,b,c转化为整数.再比如: a = ['1','2','3','4'] print map(list,a) print map(int,a) 第一个map是把列表a中每个元素转化为列表,第二个map是把a中每个元素转化为整数. 而对于zip(),原型是

  • 详解Python3 对象组合zip()和回退方式*zip

    zip即将多个可迭代对象组合为一个可迭代的对象,每次组合时都取出对应顺序的对象元素组合为元组,直到最少的对象中元素全部被组合,剩余的其他对象中未被组合的元素将被舍弃. keys = ['one', 'two', 'three'] values = [1, 2, 3] d = zip(keys, values) print(list(d)) 示例结果: [('one', 1), ('two', 2), ('three', 3)] 可以看到我们由 zip 模拟了一个类似字典的一一对应的元组迭代对象,

  • js对象实例详解(JavaScript对象深度剖析,深度理解js对象)

    这算是酝酿很久的一篇文章了. JavaScript作为一个基于对象(没有类的概念)的语言,从入门到精通到放弃一直会被对象这个问题围绕. 平时发的文章基本都是开发中遇到的问题和对最佳解决方案的探讨,终于忍不住要写一篇基础概念类的文章了. 本文探讨以下问题,在座的朋友各取所需,欢迎批评指正: 1.创建对象 2.__proto__与prototype 3.继承与原型链 4.对象的深度克隆 5.一些Object的方法与需要注意的点 6.ES6新增特性 下面反复提到实例对象和原型对象,通过构造函数 new

  • 详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数

    hasattr()函数 hasattr()函数用于判断是否包含对应的属性 语法: hasattr(object,name) 参数: object--对象 name--字符串,属性名 返回值: 如果对象有该属性返回True,否则返回False 示例: class People: country='China' def __init__(self,name): self.name=name def people_info(self): print('%s is xxx' %(self.name))

  • 示例详解Python3 or Python2 两者之间的差异

    每门编程语言在发布更新之后,主要版本之间都会发生很大的变化. 在本文中,Vinodh Kumar 通过示例解释了 Python 2 和 Python 3 之间的一些重大差异,以帮助说明语言的变化. 本教程主要介绍内容: 表达式 Print 选项 Unequal 操作 Range 自动迁移 性能问题 主要的内部事务更改 1.表达式 在 Python 2 中为获得计算表达式,你会键入: 但在 Python 3 中,你会键入: 因此,无论我们输入什么,值都会分配给 2 和 3 中的变量 x.当在 Py

  • 详解python对象之间的交互

    先看看一般的类定义如下: class 类名: def __init__(self,参数1,参数2): self.对象的属性1 = 参数1 self.对象的属性2 = 参数2 def 方法名(self):pass def 方法名2(self):pass 对象名 = 类名(1,2) #对象就是实例,代表一个具体的东西 #类名() : 类名+括号就是实例化一个类,相当于调用了__init__方法 #括号里传参数,参数不需要传self,其他与init中的形参一一对应 #结果返回一个对象 对象名.对象的属

  • 详解 javascript对象创建模式

    创建模式 在javascript中,主要有以下几种创建模式: 工厂模式 构造函数模式 原型模式 组合模式 动态原型模式 寄生构造函数模式 稳妥构造模式 工厂模式 工厂模式是软件工程领域一种广为人知的设计模式.javascript实现方式: function createPerson(name, obj, job) { var o = new Object(); o.name = name; o.obj = obj; o.job = job; o.sayName = function() { al

  • 详解React Native监听Android回退按键与程序化退出应用

    详解React Native监听Android回退按键与程序化退出应用 前言 我们知道Android回退按键,会控制页面返回, 并且退出应用并非真正意义退出,仍在后台运行,所以在某些场景下需要监控android回退按键,那么在React Native中应该如何应用呢?我们具体来看看. BackAndroid 此模块用于监听硬件的back键操作. 看下具体代码: BackAndroid.addEventListener('hardwareBackPress', function() { if (!

  • 详解Java对象的强、软、弱和虚引用+ReferenceQueue

    详解Java对象的强.软.弱和虚引用+ReferenceQueue 一.强引用(StrongReference) 强引用是使用最普遍的引用.如果一个对象具有强引用,那垃圾回收器绝不会回收它.当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题. 二.软引用(SoftReference) 如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它:如果内存空间不足了,就会回收这些对象的内存.只要垃圾回

  • 详解Python3 pandas.merge用法

    摘要 数据分析与建模的时候大部分时间在数据准备上,包括对数据的加载.清理.转换以及重塑.pandas提供了一组高级的.灵活的.高效的核心函数,能够轻松的将数据规整化.这节主要对pandas合并数据集的merge函数进行详解.(用过SQL或其他关系型数据库的可能会对这个方法比较熟悉.)码字不易,喜欢请点赞!!! 1.merge函数的参数一览表 2.创建两个DataFrame 3.pd.merge()方法设置连接字段. 默认参数how是inner内连接,并且会按照相同的字段key进行合并,即等价于o

  • 对sklearn的使用之数据集的拆分与训练详解(python3.6)

    研修课上讲了两个例子,融合一下. 主要演示大致的过程: 导入->拆分->训练->模型报告 以及几个重要问题: ①标签二值化 ②网格搜索法调参 ③k折交叉验证 ④增加噪声特征(之前涉及) from sklearn import datasets #从cross_validation导入会出现warning,说已弃用 from sklearn.model_selection import train-test_split from sklearn.grid_search import Gri

随机推荐