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 09 Python
使用Python脚本来控制Windows Azure的简单教程
Apr 16 Python
python 采集中文乱码问题的完美解决方法
Sep 27 Python
python+django+sql学生信息管理后台开发
Jan 11 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
Dec 16 Python
python3.6使用urllib完成下载的实例
Dec 19 Python
在python3中实现更新界面
Feb 21 Python
Python+Kepler.gl实现时间轮播地图过程解析
Jul 20 Python
Python 实现键盘鼠标按键模拟
Nov 18 Python
Python学习之time模块的基本使用
Jan 17 Python
Django rest framework如何自定义用户表
Jun 09 Python
opencv深入浅出了解机器学习和深度学习
Mar 17 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
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
PHP 解决session死锁的方法
2013/06/20 PHP
php数组键值用法实例分析
2015/02/27 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
PHP简单获取多个checkbox值的方法
2016/06/13 PHP
js异或加解密效果代码
2008/06/25 Javascript
Ajax执行顺序流程及回调问题分析
2012/12/10 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
jquery easyui combobox模糊过滤(示例代码)
2013/11/30 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
详解JavaScript中的事件流和事件处理程序
2016/05/20 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
5 种JavaScript编码规范
2018/01/30 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
在vue中给列表中的奇数行添加class的实现方法
2018/09/05 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
python读取word文档的方法
2015/05/09 Python
Python探索之自定义实现线程池
2017/10/27 Python
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
浅谈Python爬虫基本套路
2019/03/25 Python
详解Python3 pandas.merge用法
2019/09/05 Python
基于python实现蓝牙通信代码实例
2019/11/19 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
公司户外活动总结
2014/07/04 职场文书
最新离婚协议书范本
2014/08/19 职场文书
2015年推普周活动总结
2015/03/27 职场文书
倡议书的格式写法
2015/04/28 职场文书
大学感恩节活动总结
2015/05/05 职场文书
开国大典观后感
2015/06/04 职场文书
2019年朋友圈经典励志语录50条
2019/07/05 职场文书
我对PyTorch dataloader里的shuffle=True的理解
2021/05/20 Python
TypeScript 内置高级类型编程示例
2022/09/23 Javascript