(python函数03)zip()函数

zip是用来压缩的,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个元组(tuple),然后返回有这些tuples组成的对象,可强制转化为列表和字典。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。

示例代码01

 list_str = ['a', 'b', 'c', 'd']
 list_num = [1, 2, 3, 4]
 list_new = zip(list_num, list_str)
 print("zip结果(列表):", list(list_new))

运行结果01

 zip结果(列表): [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]

示例代码02

 list_str = ['a', 'b', 'c', 'd']
 list_num = [1, 2, 3, 4]
 list_new = zip(list_num, list_str)
 print("zip结果(字典):", dict(list_new))

运行结果02

 zip结果(字典): {1: 'a', 2: 'b', 3: 'c', 4: 'd'}

示例代码03

 list_str = ['a', 'b', 'c', 'd']
 list_num = [1, 2, 3, 4]
 list_new = zip(list_num, list_str)
 print("zip结果(列表):", list(list_new))
 print("zip结果(字典):", dict(list_new))

运行结果03

 zip结果(列表): [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
 zip结果(字典): {}

  • 这三个例子说明打包一次,只能强制转化一次列表或者字典

示例代码04

 str = 'abcd'
 str2 = '1234'
 list_new = zip(str, str2)
 print('zip结果(字典):', dict(list_new))

运行结果04

 zip结果(字典): {'a': '1', 'b': '2', 'c': '3', 'd': '4'}

示例代码05

list_str = ['a', 'b', 'c', 'd']
list_num = [1, 2, 3, 4]
x, y, z, p = zip(list_num, list_str)
print(x)
print(y)
print(z)
print(p)

运行结果

(1, 'a')
(2, 'b')
(3, 'c')
(4, 'd')

这个代码不知道怎么描述,记住吧哈。看别人代码的时候会遇到的!


  • 字符串也是迭代类型喔!

有了压缩,肯定少不了解压缩,在python中,对zip函数的解压缩就是*zip函数,解压缩并非是返回原来的两个列表,而是返回一个列表,之前的内容被定义为元组类型

示例代码06

a = [1, 2, 3]
b = ['a', 'b', 'c']
c = ['x', 'y', 'z']
d = zip(a, b, c)
e = zip(*d)
print('zip(a, b, c)----->', d)
print('zip(a, b, c)----->类型', type(d))
print('zip(*zip(a, b, c))----->', e)
print('zip(*zip(a, b, c))----->类型', type(e)) x, y, z = e
print(z)
print(y)
print(x)

运行结果06

zip(a, b, c)-----> <zip object at 0x00000206E95E0788>
zip(a, b, c)----->类型 <class 'zip'>
zip(*zip(a, b, c))-----> <zip object at 0x00000206E95E0648>
zip(*zip(a, b, c))----->类型 <class 'zip'>
('x', 'y', 'z')
('a', 'b', 'c')
(1, 2, 3)

哇塞!好神奇啊!这是语言,仿佛没有为什么!

 

(python函数03)zip()函数的更多相关文章

  1. python中使用zip函数出现<zip object at 0x02A9E418>

    在Python中使用zip函数,出现<zip object at 0x02A9E418>错误的原因是,你是用的是python2点多的版本,python3.0对python做了改动 zip方 ...

  2. 【Python】无须numpy,利用map函数与zip(*)函数对数组转置(转)

    http://blog.csdn.net/yongh701/article/details/50283689 在Python的numpy中,对类似array=[[1,2,3],[4,5,6],[7,8 ...

  3. python中的 zip函数详解

    python中zip()函数用法举例 定义:zip([iterable, ...]) zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple ...

  4. 【Python基础】zip函数的使用

    zip函数的使用 描述 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表. 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同, ...

  5. python中的zip()函数和map()函数

    一.zip()函数 1.语法: zip(iterable, ...) 参数说明: iterable,...-- 一个或多个迭代器; 在python2中: zip() 函数用于将可迭代的对象作为参数,将 ...

  6. python学习-32 zip函数

    zip 拉链方法 例如:1. ')))) 运行结果: [(')] Process finished with exit code 0 2. a = {'name':'abc','age':18,'ad ...

  7. python中的zip函数的使用

    >>> x = [, , ] >>> y = [, , ] >>> z = [, , ] >>> xyz = list(zip( ...

  8. Python中的zip()与*zip()函数详解

    前言 实验环境: Python 3.6: 示例代码地址:下载示例: 本文中元素是指列表.元组.字典等集合类数据类型中的下一级项目(可能是单个元素或嵌套列表). zip(*iterables)函数详解 ...

  9. python开发笔记之zip()函数用法详解

    今天分享一篇关于python下的zip()函数用法. zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素按顺序组合成一个tuple,每个tuple中包含的是原 ...

随机推荐

  1. NX二次开发-通过3x3矩阵获取XYZ轴矢量

    函数:UF_CSYS_ask_wcs() 函数说明:通过3x3矩阵获取XYZ轴矢量 用法: 1 #include <uf.h> 2 #include <uf_mtx.h> 3 ...

  2. 多图:一文带你入门掌握JVM所有知识点

    本JVM系列属于本人学习过程当中总结的一些知识点,目的是想让读者更快地掌握JVM相关的知识要点,难免会有所侧重,若想要更加系统更加详细的学习JVM知识,还是需要去阅读专业的书籍和文档. 本文主题内容: ...

  3. 用jquery通过点击事件把下拉列表币种的值传给文本框1,再通过文本框1的币种名称用if转化为币别传值给文本框2保存

    <script src="https://cdn.staticfile.org/jquery/2.2.4/jquery.min.js"></script>& ...

  4. .net core 支付宝,微信支付 一

    源码: https://github.com/aspros-luo/Qwerty.Payment/tree/develop 支付宝支付:参考支付宝sdk及文档,https://docs.open.al ...

  5. 基于 CentOS 8 搭建 openLDAP 服务器

    转载请注明原文地址:基于 CentOS 8 搭建 openLDAP 服务器 环境 OS: CentOS 8.4.2105 PHP: 7.4.21 注意 CentOS 7 中可能默认提供了 openLD ...

  6. 羊城杯wp babyre

    肝了好久,没爆破出来,就很难受,就差这题没写了,其他三题感觉挺简单的,这题其实也不是很难,我感觉是在考算法. 在输入之前有个smc的函数,先动调,attach上去,ida打开那个关键函数. 代码逻辑还 ...

  7. bugku--cookie欺骗

    打开题目一看,是一串的东西,再看了一下filename发现不对劲了,明显是base64编码,拿去解码一下, 发现是这个,说明是filename,是需要解析的哪个文件名,把index.php编码一下,试 ...

  8. ELK处理Spring Boot 日志,妙!

    在排查线上异常的过程中,查询日志总是必不可缺的一部分.现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常困难. 工欲善其事,必先利其器.如果此时有一个统一的实时日志分析平台,那 ...

  9. DIY一个智能开关kwswitch

    源码地址:https://gitee.com/kerwincui/kwswitch 平台简介 该智能开关平台包括服务端.硬件端.PC端和安卓端.硬件使用ESP8266模块,成本相对较低,可以发挥想象力 ...

  10. STM32学习进程

    新建一个自己的工程模板,以我所用的MDK4为例 MDK4软件图标 (1)新建一个自己储存数据的文件夹.以我自己为例(文件夹名字任取自己记住熟悉就行,以下将以我的文件夹文件进行操作讲解) 新建的总体文件 ...