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 相关文章推荐
windows下wxPython开发环境安装与配置方法
Jun 28 Python
Python中使用第三方库xlrd来写入Excel文件示例
Apr 05 Python
Python中使用platform模块获取系统信息的用法教程
Jul 08 Python
Python使用正则表达式抓取网页图片的方法示例
Apr 21 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
Jan 11 Python
python实现一组典型数据格式转换
Dec 15 Python
解决项目pycharm能运行,在终端却无法运行的问题
Jan 19 Python
Python 调用 Outlook 发送邮件过程解析
Aug 08 Python
python try except返回异常的信息字符串代码实例
Aug 15 Python
python hashlib加密实现代码
Oct 17 Python
使用python模拟高斯分布例子
Dec 09 Python
手把手教你怎么用Python实现zip文件密码的破解
May 27 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 函数使用可变数量的参数方法
2017/05/02 PHP
PHP进阶学习之反射基本概念与用法分析
2019/06/18 PHP
利用javascript查看html源文件
2006/11/08 Javascript
JavaScript Timer实现代码
2010/02/17 Javascript
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
JavaScript函数详解
2014/11/17 Javascript
jQuery实现新消息闪烁标题提示的方法
2015/03/11 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
2015/04/26 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
2016/12/16 Javascript
详解Vue的computed(计算属性)使用实例之TodoList
2017/08/07 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
详解微信小程序开发用户授权登陆
2019/04/24 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
2020/07/19 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
js实现菜单跳转效果
2020/12/11 Javascript
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
浅谈function(函数)中的动态参数
2017/04/30 Python
Python高级用法总结
2018/05/26 Python
python 3.3 下载固定链接文件并保存的方法
2018/12/18 Python
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
2020/02/11 Python
html5基础标签(html5视频标签 html5新标签用法)
2013/12/30 HTML / CSS
日本订房网站,预订日本星级酒店/温泉旅馆:Relux(支持中文)
2020/01/03 全球购物
销售代表求职自荐信
2013/10/01 职场文书
教师职称自我鉴定
2014/02/12 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
群众路线对照检查剖析材料
2014/10/09 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
生死抉择观后感
2015/06/09 职场文书
士兵突击观后感
2015/06/16 职场文书
2015年中秋放假通知范文
2015/08/18 职场文书
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS
javascript实现计算器功能详解流程
2021/11/01 Javascript
浅谈JavaScript作用域
2021/12/06 Javascript