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 快速排序代码
Nov 23 Python
详解Python开发中如何使用Hook技巧
Nov 01 Python
pyqt5简介及安装方法介绍
Jan 31 Python
Python网络编程之TCP套接字简单用法示例
Apr 09 Python
Python SQL查询并生成json文件操作示例
Aug 17 Python
python3 实现对图片进行局部切割的方法
Dec 05 Python
详解python实现小波变换的一个简单例子
Jul 18 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
Aug 09 Python
Python使用Chrome插件实现爬虫过程图解
Jun 09 Python
python3中确保枚举值代码分析
Dec 02 Python
详细介绍python操作RabbitMq
Apr 12 Python
Python+SeaTable实现计算两个日期间的工作日天数
Jul 07 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将网址字符串转换成超链接(网址或email)
2010/05/25 PHP
解决PHP里大量数据循环时内存耗尽的方法
2015/10/10 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
javascript 写类方式之七
2009/07/05 Javascript
js 加载并解析XML字符串的代码
2009/12/13 Javascript
jquer之ajaxQueue简单实现代码
2011/09/15 Javascript
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
JavaScript Ajax Json实现上下级下拉框联动效果实例代码
2013/11/23 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
2015/08/21 Javascript
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
移动端基础事件总结与应用
2017/01/12 Javascript
用 js 的 selection range 操作选择区域内容和图片
2017/04/18 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
Vue事件修饰符native、self示例详解
2019/07/09 Javascript
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
举例讲解Python设计模式编程中的访问者与观察者模式
2016/01/26 Python
python进程管理工具supervisor的安装与使用教程
2017/09/05 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
mac系统下Redis安装和使用步骤详解
2019/07/09 Python
python中实现栈的三种方法
2020/12/19 Python
Html5页面内使用JSON动画的实现
2019/01/29 HTML / CSS
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
Roxy荷兰官方网站:冲浪、滑雪板、服装和配件
2019/10/22 全球购物
教师旷工检讨书
2014/01/18 职场文书
接待员岗位责任制
2014/02/10 职场文书
小学端午节活动总结
2015/02/11 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
关于Python中*args和**kwargs的深入理解
2021/08/07 Python