Python基础——zip
来源:互联网 发布:python开发实战1200例 编辑:程序博客网 时间:2024/06/14 02:03
>>> x = range(0, 27)>>> y = [chr(x) for x in range(97, 123)]>>> [(i, j) for i in x for j in y](1, 'a')(1, 'b')...(2, 'a')(2, 'b')...(26, 'x')(26, 'y')(26, 'z')
[(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'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f'), (6, 'g'), (7, 'h'), (8, 'i'), (9, 'j'), (10, 'k'), (11, 'l'), (12, 'm'), (13, 'n'), (14, 'o'), (15, 'p'), (16, 'q'), (17, 'r'), (18, 's'), (19, 't'), (20, 'u'), (21, 'v'), (22, 'w'), (23, 'x'), (24, 'y'), (25, 'z')]
不由得让人联想起meshgrid函数,我们要实现`[0, 1, 2, 3, 4, 5]
>>> [Y, X] = np.meshgrid(range(0, 6), range(0, 6))>>> Yarray([[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]])>>> Xarray([[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
我们再次回到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)]
0 0
- Python基础——zip
- python zip函数基础
- Python基础-zip lambda map
- Python基础 5----python的map和zip操作
- python zip() zip(*arg)
- Linux基础——zip和unzip工具
- Python 标准库 —— zipfile(读取 zip 文件)
- 不曾见过的Python函数——zip()
- python学习——zip()函数的用法
- python zip()
- python zip
- Python ZIP
- python zip
- python zip
- zip() python
- python zip( )
- python zip
- python基础之list,zip,array的区别
- logrotate linux 系统日志备份压缩工具
- CSDN网站系统升级公告
- PinnedSectionListView实现手机通讯录功能
- 移动端实现摇一摇并振动
- Android手机屏幕适配
- Python基础——zip
- hdu 1151 Air Raid
- swift 快速奔跑的兔几 本节的内容是:iOS上基于文档的应用程序
- Android合并文件的三种方式
- Ansj添加停用词表
- Boost.program_options简述
- 你了解 Assembly.Load 吗?
- redis memcache 性能比较
- C++设计模式[十八]观察者模式