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脚本批量下载DesktopNexus壁纸的教程
May 06 Python
详解Python import方法引入模块的实例
Aug 02 Python
python获取时间及时间格式转换问题实例代码详解
Dec 06 Python
Python3 max()函数基础用法
Feb 19 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
Feb 21 Python
python如何获取apk的packagename和activity
Jan 10 Python
Django-xadmin+rule对象级权限的实现方式
Mar 30 Python
python数据分析工具之 matplotlib详解
Apr 09 Python
matlab中二维插值函数interp2的使用详解
Apr 22 Python
Python网页解析器使用实例详解
May 30 Python
pandas 实现将NaN转换为None
May 14 Python
pytorch 权重weight 与 梯度grad 可视化操作
Jun 05 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
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
php简单实现批量上传图片的方法
2016/05/09 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
JavaScript定义类或函数的几种方式小结
2011/01/09 Javascript
Javascript 异步加载详解(浏览器在javascript的加载方式)
2012/05/20 Javascript
模拟一个类似百度google的模糊搜索下拉列表
2014/04/15 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
2016/02/16 Javascript
jQuery实现的无限级下拉菜单功能示例
2016/09/12 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
浅析JavaScriptSerializer类的序列化与反序列化
2016/11/22 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
javascript 作用于作用域链的详解
2017/09/27 Javascript
Django中使用jquery的ajax进行数据交互的实例代码
2017/10/15 jQuery
微信小程序实现手势滑动卡片效果
2019/08/26 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
VsCode里的Vue模板的实现
2020/08/12 Javascript
[36:20]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.17
2020/12/18 DOTA
python登录QQ邮箱发信的实现代码
2013/02/10 Python
python根据出生日期获得年龄的方法
2015/03/31 Python
windows下python和pip安装教程
2018/05/25 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
2018/12/20 Python
Python数据预处理之数据规范化(归一化)示例
2019/01/08 Python
python用for循环求和的方法总结
2019/07/08 Python
python集合删除多种方法详解
2020/02/10 Python
Python 调用 ES、Solr、Phoenix的示例代码
2020/11/23 Python
美国宠物商店:Wag.com
2016/10/25 全球购物
Champion澳大利亚官网:美国冠军运动服装
2018/05/07 全球购物
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
行政专员工作职责
2013/12/22 职场文书
艺人经纪人岗位职责
2014/04/15 职场文书
社团活动总结怎么写
2014/06/30 职场文书
公务员政审个人总结
2015/02/12 职场文书
2016年教师党员创先争优承诺书
2016/03/24 职场文书
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python