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实现TCP/IP协议下的端口转发及重定向示例
Jun 14 Python
浅谈编码,解码,乱码的问题
Dec 30 Python
Python下的Softmax回归函数的实现方法(推荐)
Jan 26 Python
视觉直观感受若干常用排序算法
Apr 13 Python
Python爬虫包BeautifulSoup实例(三)
Jun 17 Python
python实现自动发送报警监控邮件
Jun 21 Python
Python基于多线程操作数据库相关问题分析
Jul 11 Python
Python通用循环的构造方法实例分析
Dec 19 Python
tensorflow自定义激活函数实例
Feb 04 Python
Python类及获取对象属性方法解析
Jun 15 Python
python使用列表的最佳方案
Aug 12 Python
python自动计算图像数据集的RGB均值
Jun 18 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
Discuz板块横排显示图片的实现方法
2007/05/28 PHP
CI框架给视图添加动态数据
2014/12/01 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
php动态绑定变量的用法
2015/06/16 PHP
php类自动加载器实现方法
2015/07/28 PHP
jQuery 表格工具集
2010/04/25 Javascript
JS图片根据鼠标滚动延时加载的实例代码
2013/07/13 Javascript
jquery 通过name快速取值示例
2014/01/24 Javascript
jQuery函数的第二个参数获取指定上下文中的DOM元素
2014/05/19 Javascript
Javascript之String对象详解
2016/06/08 Javascript
原生js实现对Ajax的封装(仿jquery)
2017/01/22 Javascript
jquery submit()不能提交表单的解决方法
2017/04/24 jQuery
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
JavaScript闭包的简单应用
2017/09/01 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
2018/08/12 Javascript
vue操作动画的记录animate.css实例代码
2019/04/26 Javascript
vue+element-ui表格封装tag标签使用插槽
2020/06/18 Javascript
JavaScript实现多球运动效果
2020/09/07 Javascript
python list语法学习(带例子)
2013/11/01 Python
举例详解Python中循环语句的嵌套使用
2015/05/14 Python
Python爬虫实例扒取2345天气预报
2018/03/04 Python
python 从文件夹抽取图片另存的方法
2018/12/04 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
pyqt 实现在Widgets中显示图片和文字的方法
2019/06/13 Python
对tensorflow 中tile函数的使用详解
2020/02/07 Python
JAVA及PYTHON质数计算代码对比解析
2020/06/10 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
我的长生果教学反思
2014/04/28 职场文书
机械系毕业生求职信
2014/05/28 职场文书
高中课前三分钟演讲稿
2014/08/18 职场文书
2014法院干警廉洁警示教育思想汇报
2014/09/13 职场文书
汽车转让协议书范本
2014/12/07 职场文书
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL