0. zip 的特殊情况

  • 不等长:

    a = range(3)
    b = range(5)
    >> list(zip(a, b))
    [(0, 0), (1, 1), (2, 2)]
    
  • zip(*)

    • *对其作用的对象进行 unpack,拆包;
    l = [[1, 2, 3], [4, 5, 6]]
    >> list(zip(l))
    [([1, 2, 3],), ([4, 5, 6],)]
    >> list(zip(*l))
    [(1, 4), (2, 5), (3, 6)]
    

1. 两层循环与 zip 的一一对应

[(i, j) for i in x for j in y] 也即:

l = []
for i in x:for j in y:l.append((i, j))

表达的是一种笛卡尔积的关系。那么如何实现一一对应呢,这时就需要zip操作了:

>>> [(i, j) for i, j in zip(x, y)]
[(0, 'a'),(1, 'b'),
...(24, 'y'),(25, 'z')]

2. meshgrid

不由得让人联想起meshgrid函数,我们要实现`[0, 1, 2, 3, 4, 5]×\times×[0, 1, 2, 3, 4, 5]网格的整数节点位置:

>>> [Y, X] = np.meshgrid(range(0, 6), range(0, 6))
>>> Y
array([[0, 1, 2, 3, 4, 5],[0, 1, 2, 3, 4, 5],[0, 1, 2, 3, 4, 5],[0, 1, 2, 3, 4, 5],[0, 1, 2, 3, 4, 5],[0, 1, 2, 3, 4, 5]])
>>> X
array([[0, 0, 0, 0, 0, 0],[1, 1, 1, 1, 1, 1],[2, 2, 2, 2, 2, 2],[3, 3, 3, 3, 3, 3],[4, 4, 4, 4, 4, 4],[5, 5, 5, 5, 5, 5]])
for x in range(0, 6):for y in range(0, 6):x - y

便可转换为矩阵化的做法:

X-Y

3. 二元tuple元素前后的调换

我们再次回到zip本身,如何实现一个list(tuple)前后元素的调换再集合:

[1, 2, 3, 4, 5] -> [(2, 1), (3, 2), (4, 3), (5, 4)]

对一个list做两次索引再zip:

>>> l = [1, 2, 3, 4, 5]
>>> [(j, i) for i, j in zip(l[:-1], l[1:])]
[(2, 1), (3, 2), (4, 3), (5, 4)]

Python基础——zip相关推荐

  1. Python基础——zip、lambda、map

    文章目录 1.zip--合并 2.lambda--无名函数 3.map--绑定函数和参数 1.zip--合并 zip函数接受任意多个(包括0个和1个)序列作为参数,合并后返回一个tuple列表 A = ...

  2. 黑马传智python基础班课程_fb238 17年_传智黑马Python

    fb238 17年_传智黑马Python 文件大小:7.39GB  文件类型:MP4 文件数量:50 --/资源热下载站/Vip教程/编程开发/Python/Fb238 17年_传智黑马Python/ ...

  3. python基础语法合集-Python基础语法合集.zip

    [实例简介]精心整理的Python基础语法合集,变量,循环,输入输出等等都有,主要是知道概念和怎么用的 如果打开文件后有文字变成符号的,先把字体改为宋体就正常了 [实例截图] [核心代码] 目录 了解 ...

  4. python基础教程是什么语言-0编程基础,什么语言也没学过,请问学Python怎样入门?...

    其实Python入门并不难,只要你有足够的自信心,明确学习目标,循序渐进就能不断享受到python带给你创新的乐趣. 大家为什么要学习python呢? 1.python简单易学 python的优势就是 ...

  5. 没学过python、但是还是有公司要-学习python 基础都会了 为什么还是做不出项目呢?...

    原标题:学习python 基础都会了 为什么还是做不出项目呢? Python是一门足够简单但又非常强大的程序语言,应用领域甲冠天下,在WEB开发.WEB爬虫.科学计算.人工智能.云计算.数据分析.数据 ...

  6. python语法基础知识总结-Python基础知识梳理 - 第01部分

    在开始Python基础知识梳理前, 先安装下环境. 以下过程是在Linux操作系统, root用户下进行的, 主要安装了2.7版本的python, 和pip, ipython, virtualenv等 ...

  7. python心得体会-终于懂得python基础学习心得

    为了提高模块加载的速度,每个模块都会在__pycache__文件夹中放置该模块的预编译模块,命名为module.version.pyc,version是模块的预编译版本编码,一般都包含Python的版 ...

  8. Python基础知识实例讲解

    Python作为一种面向对象.解释型计算机程序设计语言,语法简洁而清晰,具有丰富和强大的类库,在网站开发,数据处理,网络编程,图形处理,网络爬虫.机器学习.科学计算.自动化测试.系统运维等方面应用广泛 ...

  9. 七月在线python数据分析_七月在线Python基础+数据分析班+爬虫项目

    资源介绍 七月在线Python基础+数据分析班+爬虫项目 目录 ├─Python基础入门班2017年 ││代码.rar │└─视频 │xa0 xa0 01.第1课 入门基础.rar │xa0 xa0 ...

最新文章

  1. BFD与IGP快速收敛应用测试
  2. 人机融合智能与深度态势感知
  3. mysql 特殊字符
  4. oracle消除重复的行使用的什么函数,利用Oracle的row_number() over函数消除重复的记录...
  5. list lt t gt java_将DataTable转换成Listlt;Tgt;实现思路及示例代码
  6. 丰收互联蓝牙key怎么开机_ublox收购Rigado的蓝牙模块业务,扩大蓝牙低功耗产品组合...
  7. 芋道 Spring Boot 自动配置原理
  8. kafka数据 落盘_Kafka数据可靠性保证三板斧-ACK/ISR/HW
  9. python ppt转pdf macos_Python批量将ppt转换为pdf
  10. 在中国云市场淘金?看国际云大佬如何“软着陆”
  11. Kali Linux 破解无线网密码
  12. java NEW一个对象之后加入大括号
  13. 如何实现1080P延迟低于500ms的实时超清直播传输技术
  14. 华为p50pro会搭载鸿蒙吗,华为P50Pro概念图:1亿像素4摄+鸿蒙OS,正反双屏尤其耀眼...
  15. C#--解方程组之Jacobi迭代法
  16. LeetCode(力扣)_接雨水
  17. 实验项目名称:微波技术与天线CST仿真实验
  18. 企业WiFi解决方案,解决所有后顾之忧
  19. android 输入法 智能abc 风格,音形结合——智能ABC输入法的一大诀窍
  20. Cloud一分钟 |金立董事长赌博输超100亿;韩国全国4万工人大罢工;当当网李国庆力挺俞敏洪...

热门文章

  1. Maven的性质与部署整理
  2. 详解: Spark 相对于MapReduce的优势(为什么MapReduce性能不理想)
  3. Spark Streaming的IDEA操作在spark操作的差别和解决
  4. mysql1558错误,mysql删除用户错误ERROR 1558解决办法
  5. 问题记录 | 配置ubuntu18.04+cuda9.0+cudnn服务器tensorflow-gpu深度学习环境
  6. CCPC-Wannafly Winter Camp Day3 (Div2, onsite) I 石头剪刀布(按秩合并并查集)
  7. 25个超有用的 AngularJS Web 开发工具
  8. Cookie/Session机制详解 转
  9. CentOS7 下安装telnet服务
  10. nginx是否存在文件类型解析漏洞(转)