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用字典统计单词或汉字词个数示例
Apr 22 Python
Python中使用Tkinter模块创建GUI程序实例
Jan 14 Python
Python操作Excel之xlsx文件
Mar 24 Python
用python写个自动SSH登录远程服务器的小工具(实例)
Jun 17 Python
利用Python如何生成便签图片详解
Jul 09 Python
解决Python2.7中IDLE启动没有反应的问题
Nov 30 Python
Python aiohttp百万并发极限测试实例分析
Oct 26 Python
Python中join()函数多种操作代码实例
Jan 13 Python
Python基础之列表常见操作经典实例详解
Feb 26 Python
使用pyecharts1.7进行简单的可视化大全
May 17 Python
Django 解决由save方法引发的错误
May 21 Python
python 通过文件夹导入包的操作
Jun 01 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
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
php在apache环境下实现gzip配置方法
2015/04/02 PHP
laravel学习教程之存取器
2016/07/30 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
2019/04/03 PHP
js修改table中Td的值(定义td的双击事件)
2013/01/10 Javascript
动态获取复选框checkbox选中个数的jquery代码
2013/06/25 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
从parcel.js打包出错到选择nvm的全部过程
2018/01/23 Javascript
微信小程序学习笔记之获取位置信息操作图文详解
2019/03/29 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
2020/07/17 Javascript
python实现定时播放mp3
2015/03/29 Python
Python中join和split用法实例
2015/04/14 Python
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
带你了解python装饰器
2017/06/15 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
Python 统计位数为偶数的数字代码详解
2020/03/15 Python
Python json格式化打印实现过程解析
2020/07/21 Python
HTML 5.1来了 9月份正式发布 更新内容预览
2016/04/26 HTML / CSS
html5清空画布方法(三种)
2017/10/16 HTML / CSS
罗马尼亚购物网站:Vivantis.ro
2019/07/20 全球购物
博士学位自我鉴定范文
2013/12/26 职场文书
2014全国两会大学生学习心得体会
2014/03/10 职场文书
协议书模板
2014/04/23 职场文书
环保倡议书100字
2014/05/15 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
2014幼儿教师个人工作总结
2014/12/03 职场文书
工地材料员岗位职责
2015/04/11 职场文书
应用最多的公文《通知》如何写?
2019/04/02 职场文书
党风廉政建设心得体会
2019/05/21 职场文书
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers
ubuntu20.04虚拟机无法上网的问题及解决
2022/12/24 Servers