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分析nignx访问日志脚本分享
Feb 26 Python
在Django的session中使用User对象的方法
Jul 23 Python
Python用Pillow(PIL)进行简单的图像操作方法
Jul 07 Python
Python快速查找list中相同部分的方法
Jun 27 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
Oct 14 Python
Python如何使用函数做字典的值
Nov 30 Python
python多线程使用方法实例详解
Dec 30 Python
如何基于Python创建目录文件夹
Dec 31 Python
TensorFLow 数学运算的示例代码
Apr 21 Python
Python字典fromkeys()方法使用代码实例
Jul 20 Python
4种非常实用的python内置数据结构
Apr 28 Python
pytorch中Schedule与warmup_steps的用法说明
May 24 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-MySQL教程归纳总结
2008/06/07 PHP
php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
2010/05/16 PHP
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
2011/05/25 PHP
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
jquery+thinkphp实现跨域抓取数据的方法
2016/10/15 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
2017/06/06 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
jquery animate图片模向滑动示例代码
2011/01/26 Javascript
解析John Resig Simple JavaScript Inheritance代码
2012/12/03 Javascript
基于node实现websocket协议
2016/04/25 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
cdn模式下vue的基本用法详解
2018/10/07 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
Python的re模块正则表达式操作
2016/05/25 Python
深入理解python对json的操作总结
2017/01/05 Python
Python Json模块中dumps、loads、dump、load函数介绍
2018/05/15 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
python实现吃苹果小游戏
2020/03/21 Python
python+opencv实现车道线检测
2021/02/19 Python
解决pytorch 的state_dict()拷贝问题
2021/03/03 Python
整理HTML5移动端开发的常用触摸事件
2016/04/15 HTML / CSS
特罗佩亚包官方网站:Tropea
2017/01/03 全球购物
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
车间主管岗位职责
2013/11/14 职场文书
师范教师大学生职业生涯规划范文
2014/01/05 职场文书
前处理班长职位说明书
2014/03/01 职场文书
我为党旗添光彩演讲稿
2014/09/10 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
优秀小学生事迹材料
2014/12/26 职场文书
撤诉申请书法院范本
2015/05/18 职场文书
焦裕禄纪念馆观后感
2015/06/09 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
JavaScript 原型与原型链详情
2021/11/02 Javascript