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中使用lambda高效操作列表的教程
Apr 24 Python
Python中random模块用法实例分析
May 19 Python
Python中格式化format()方法详解
Apr 01 Python
Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例
Apr 26 Python
tensorflow更改变量的值实例
Jul 30 Python
关于Python形参打包与解包小技巧分享
Aug 24 Python
Python数据持久化存储实现方法分析
Dec 21 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
Feb 28 Python
200行python代码实现贪吃蛇游戏
Apr 24 Python
使用Python实现将多表分批次从数据库导出到Excel
May 15 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
Dec 08 Python
AI:如何训练机器学习的模型
Apr 16 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 get_meta_tags()函数
2014/05/12 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
一个tab标签切换效果代码
2009/03/27 Javascript
jQuery select的操作实现代码
2009/05/06 Javascript
基于JQuery的Pager分页器实现代码
2010/07/17 Javascript
基于JQuery 选择器使用说明介绍
2013/04/18 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
Jquery中find与each方法用法实例
2015/02/04 Javascript
Javascript 是你的高阶函数(高级应用)
2015/06/15 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
VUE开发一个图片轮播的组件示例代码
2017/03/06 Javascript
详解angularjs利用ui-route异步加载组件
2017/05/21 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
详解小程序输入框闪烁及重影BUG解决方案
2018/08/31 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
python使用wxpython开发简单记事本的方法
2015/05/20 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
python 定时修改数据库的示例代码
2018/04/08 Python
对python中矩阵相加函数sum()的使用详解
2019/01/28 Python
Python中os模块功能与用法详解
2020/02/26 Python
python下载的库包存放路径
2020/07/27 Python
Python过滤序列元素的方法
2020/07/31 Python
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
英国豪华针织品牌John Smedley的在线销售商:The Outlet by John Smedley
2018/04/08 全球购物
美国在线旅行社:Crystal Travel
2018/09/11 全球购物
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
我的祖国演讲稿
2014/05/04 职场文书
企业法人授权委托书范本
2014/09/23 职场文书
12.4法制宣传日标语
2014/10/08 职场文书
2014年学生工作总结
2014/11/20 职场文书