Python使用zip合并相邻列表项的方法示例


Posted in Python onMarch 17, 2018

本文实例讲述了Python使用zip合并相邻列表项的方法。分享给大家供大家参考,具体如下:

1》使用zip()函数和iter()函数,来合并相邻的列表项

>>> x
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> zip(*[iter(x)]*2)
[(1, 2), (3, 4), (5, 6), (7, 8)]
>>> zip(*[iter(x)]*3)
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
>>> zip(*[iter(x)]*4)
[(1, 2, 3, 4), (5, 6, 7, 8)]

之所以会出现上述结果,是因为:

>>> [iter(x)]*3
[<listiterator object at 0x02F4D790>, <listiterator object at0x02F4D790>, <listiterator object at 0x02F4D790>]

可以看到,列表中的3个迭代器实际上是同一个迭代器!!!

2》   在1》的基础上,封装成一个函数,如下:

>>> x
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> group_adjacent = lambda a, k: zip(*([iter(a)] * k))
>>> group_adjacent(x,3)
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
>>> group_adjacent(x,2)
[(1, 2), (3, 4), (5, 6), (7, 8)]
>>> group_adjacent(x,1)
[(1,), (2,), (3,), (4,), (5,), (6,), (7,), (8,), (9,)]

3》使用zip()函数和切片操作,来合并相邻的表项

>>> x
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> zip(x[::2],x[1::2])
[(1, 2), (3, 4), (5, 6), (7, 8)]
>>> zip(x[0::2],x[1::2])
[(1, 2), (3, 4), (5, 6), (7, 8)]
>>> zip(x[0::3],x[1::3],x[2::3])
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
>>> zip(x[::3],x[1::3],x[2::3])
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

4》  在3》的基础上,封装成函数,如下:

>>> x
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> group_adjacent = lambda a, k: zip(*[a[i::k] for i in range(k)])
>>> group_adjacent(x,3)
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
>>> group_adjacent(x,2)
[(1, 2), (3, 4), (5, 6), (7, 8)]
>>> group_adjacent(x,1)
[(1,), (2,), (3,), (4,), (5,), (6,), (7,), (8,), (9,)]

参考文章:

python zip()函数https://3water.com/article/136589.htm

python iter()函数https://3water.com/article/136587.htm

python lambda函数基础https://3water.com/article/136557.htm

python切片操作https://3water.com/article/136553.htm

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python实现汉诺塔方法汇总
Jul 25 Python
在Linux命令行终端中使用python的简单方法(推荐)
Jan 23 Python
Python栈算法的实现与简单应用示例
Nov 01 Python
Numpy数组的保存与读取方法
Apr 04 Python
python实现周期方波信号频谱图
Jul 21 Python
在Django中URL正则表达式匹配的方法
Dec 20 Python
对Python 检查文件名是否规范的实例详解
Jun 10 Python
Django如何将URL映射到视图
Jul 29 Python
python性能测量工具cProfile使用解析
Sep 26 Python
python给图像加上mask,并提取mask区域实例
Jan 19 Python
Python中logging日志库实例详解
Feb 19 Python
基于K.image_data_format() == 'channels_first' 的理解
Jun 29 Python
Python zip()函数用法实例分析
Mar 17 #Python
Python iter()函数用法实例分析
Mar 17 #Python
Python callable()函数用法实例分析
Mar 17 #Python
Python matplotlib绘图可视化知识点整理(小结)
Mar 16 #Python
python中matplotlib的颜色及线条控制的示例
Mar 16 #Python
Python lambda函数基本用法实例分析
Mar 16 #Python
Python切片操作实例分析
Mar 16 #Python
You might like
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
php基础学习之变量的使用
2011/06/09 PHP
LotusPhp笔记之:Logger组件的使用方法
2013/05/06 PHP
在Windows XP下安装Apache+MySQL+PHP环境
2015/02/22 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
JS短路原理的应用示例 精简代码的途径
2013/12/13 Javascript
JS判断文本框内容改变事件的简单实例
2014/03/07 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
js带前后翻页的图片切换效果代码分享
2015/09/08 Javascript
Bootstrap实现下拉菜单效果
2016/04/29 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
AngularJS中的promise用法分析
2017/05/19 Javascript
完美解决axios跨域请求出错的问题
2018/02/05 Javascript
详解vue axios二次封装
2018/07/22 Javascript
深入理解react 组件类型及使用场景
2019/03/07 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
Python 专题四 文件基础知识
2017/03/20 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
Django框架基础模板标签与filter使用方法详解
2019/07/23 Python
Python爬虫HTPP请求方法有哪些
2020/06/03 Python
CSS3 实现穿梭星空动画
2020/11/13 HTML / CSS
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
东方通信股份有限公司VC面试题
2014/08/27 面试题
安全责任协议书
2014/04/21 职场文书
公司建议书怎么写
2014/05/15 职场文书
财务工作检讨书
2014/10/29 职场文书
还款承诺书范本
2015/01/20 职场文书
2015国庆节66周年演讲稿
2015/03/20 职场文书
报案材料怎么写
2015/05/25 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python