Python基础——zip
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相关推荐
- Python基础——zip、lambda、map
文章目录 1.zip--合并 2.lambda--无名函数 3.map--绑定函数和参数 1.zip--合并 zip函数接受任意多个(包括0个和1个)序列作为参数,合并后返回一个tuple列表 A = ...
- 黑马传智python基础班课程_fb238 17年_传智黑马Python
fb238 17年_传智黑马Python 文件大小:7.39GB 文件类型:MP4 文件数量:50 --/资源热下载站/Vip教程/编程开发/Python/Fb238 17年_传智黑马Python/ ...
- python基础语法合集-Python基础语法合集.zip
[实例简介]精心整理的Python基础语法合集,变量,循环,输入输出等等都有,主要是知道概念和怎么用的 如果打开文件后有文字变成符号的,先把字体改为宋体就正常了 [实例截图] [核心代码] 目录 了解 ...
- python基础教程是什么语言-0编程基础,什么语言也没学过,请问学Python怎样入门?...
其实Python入门并不难,只要你有足够的自信心,明确学习目标,循序渐进就能不断享受到python带给你创新的乐趣. 大家为什么要学习python呢? 1.python简单易学 python的优势就是 ...
- 没学过python、但是还是有公司要-学习python 基础都会了 为什么还是做不出项目呢?...
原标题:学习python 基础都会了 为什么还是做不出项目呢? Python是一门足够简单但又非常强大的程序语言,应用领域甲冠天下,在WEB开发.WEB爬虫.科学计算.人工智能.云计算.数据分析.数据 ...
- python语法基础知识总结-Python基础知识梳理 - 第01部分
在开始Python基础知识梳理前, 先安装下环境. 以下过程是在Linux操作系统, root用户下进行的, 主要安装了2.7版本的python, 和pip, ipython, virtualenv等 ...
- python心得体会-终于懂得python基础学习心得
为了提高模块加载的速度,每个模块都会在__pycache__文件夹中放置该模块的预编译模块,命名为module.version.pyc,version是模块的预编译版本编码,一般都包含Python的版 ...
- Python基础知识实例讲解
Python作为一种面向对象.解释型计算机程序设计语言,语法简洁而清晰,具有丰富和强大的类库,在网站开发,数据处理,网络编程,图形处理,网络爬虫.机器学习.科学计算.自动化测试.系统运维等方面应用广泛 ...
- 七月在线python数据分析_七月在线Python基础+数据分析班+爬虫项目
资源介绍 七月在线Python基础+数据分析班+爬虫项目 目录 ├─Python基础入门班2017年 ││代码.rar │└─视频 │xa0 xa0 01.第1课 入门基础.rar │xa0 xa0 ...
最新文章
- BFD与IGP快速收敛应用测试
- 人机融合智能与深度态势感知
- mysql 特殊字符
- oracle消除重复的行使用的什么函数,利用Oracle的row_number() over函数消除重复的记录...
- list lt t gt java_将DataTable转换成Listlt;Tgt;实现思路及示例代码
- 丰收互联蓝牙key怎么开机_ublox收购Rigado的蓝牙模块业务,扩大蓝牙低功耗产品组合...
- 芋道 Spring Boot 自动配置原理
- kafka数据 落盘_Kafka数据可靠性保证三板斧-ACK/ISR/HW
- python ppt转pdf macos_Python批量将ppt转换为pdf
- 在中国云市场淘金?看国际云大佬如何“软着陆”
- Kali Linux 破解无线网密码
- java NEW一个对象之后加入大括号
- 如何实现1080P延迟低于500ms的实时超清直播传输技术
- 华为p50pro会搭载鸿蒙吗,华为P50Pro概念图:1亿像素4摄+鸿蒙OS,正反双屏尤其耀眼...
- C#--解方程组之Jacobi迭代法
- LeetCode(力扣)_接雨水
- 实验项目名称:微波技术与天线CST仿真实验
- 企业WiFi解决方案,解决所有后顾之忧
- android 输入法 智能abc 风格,音形结合——智能ABC输入法的一大诀窍
- Cloud一分钟 |金立董事长赌博输超100亿;韩国全国4万工人大罢工;当当网李国庆力挺俞敏洪...
热门文章
- Maven的性质与部署整理
- 详解: Spark 相对于MapReduce的优势(为什么MapReduce性能不理想)
- Spark Streaming的IDEA操作在spark操作的差别和解决
- mysql1558错误,mysql删除用户错误ERROR 1558解决办法
- 问题记录 | 配置ubuntu18.04+cuda9.0+cudnn服务器tensorflow-gpu深度学习环境
- CCPC-Wannafly Winter Camp Day3 (Div2, onsite) I 石头剪刀布(按秩合并并查集)
- 25个超有用的 AngularJS Web 开发工具
- Cookie/Session机制详解 转
- CentOS7 下安装telnet服务
- nginx是否存在文件类型解析漏洞(转)