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学习笔记 下载
Feb 10 Python
简单介绍Python中的JSON使用
Apr 28 Python
基于python的Paxos算法实现
Jul 03 Python
Python从文件中读取指定的行以及在文件指定位置写入
Sep 06 Python
PyTorch和Keras计算模型参数的例子
Jan 02 Python
在keras中实现查看其训练loss值
Jun 16 Python
django 将自带的数据库sqlite3改成mysql实例
Jul 09 Python
Python使用pyexecjs代码案例解析
Jul 13 Python
PyQT5速成教程之Qt Designer介绍与入门
Nov 02 Python
Python基础知识之变量的详解
Apr 14 Python
如何使用Python提取Chrome浏览器保存的密码
Jun 09 Python
python基础之类方法和静态方法
Oct 24 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
中国广播史趣谈 — 几个历史第一次
2021/03/01 无线电
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
Laravel 实现添加多语言提示信息
2019/10/25 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
小型js框架veryide.librar源代码
2009/03/05 Javascript
什么是MEAN?JavaScript编程中的MEAN是什么意思?
2014/12/18 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
使用JS中的exec()方法构造正则表达式验证
2016/08/01 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
react-router实现按需加载
2017/05/09 Javascript
layer.prompt输入层的例子
2019/09/24 Javascript
JavaScript Window窗口对象属性和使用方法
2020/01/19 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
python使用百度翻译进行中翻英示例
2014/04/14 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
总结python实现父类调用两种方法的不同
2017/01/15 Python
vue.js实现输入框输入值内容实时响应变化示例
2018/07/07 Python
pygame游戏之旅 载入小车图片、更新窗口
2018/11/20 Python
python实现控制台打印的方法
2019/01/12 Python
OpenCV+python实现实时目标检测功能
2020/06/24 Python
Python性能分析工具py-spy原理用法解析
2020/07/27 Python
Node.js 和 Python之间该选择哪个?
2020/08/05 Python
canvas学习和滤镜实现代码
2018/08/22 HTML / CSS
大学生自我评价怎样写好
2013/10/23 职场文书
应届生护士求职信
2013/11/01 职场文书
十一酒店活动方案
2014/02/20 职场文书
企业环保标语
2014/06/10 职场文书
四风问题个人对照检查材料
2014/09/26 职场文书
英文导游词
2015/02/13 职场文书
公司停电通知
2015/04/15 职场文书
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP