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之一个免费的实验室
Sep 14 Python
Python实现备份文件实例
Sep 16 Python
Pyhthon中使用compileall模块编译源文件为pyc文件
Apr 28 Python
Python抓取淘宝下拉框关键词的方法
Jul 08 Python
python xlsxwriter库生成图表的应用示例
Mar 16 Python
Python设计模式之策略模式实例详解
Jan 21 Python
对python中的装包与解包实例详解
Aug 24 Python
使用pyqt5 tablewidget 单元格设置正则表达式
Dec 13 Python
TensorFlow学习之分布式的TensorFlow运行环境
Feb 05 Python
判断Threading.start新线程是否执行完毕的实例
May 02 Python
python基于Kivy写一个图形桌面时钟程序
Jan 28 Python
python3读取文件指定行的三种方法
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英文字母大小写转换函数小结
2014/05/03 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
thinkPHP5.0框架事务处理操作简单示例
2018/09/07 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
JavaScript中的类与实例实现方法
2015/01/23 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
JavaScript 实现的checkbox经典实例分享
2016/10/16 Javascript
JS实现图片垂直居中显示小结
2016/12/13 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
node+koa实现数据mock接口的方法
2017/09/20 Javascript
Vue.directive 自定义指令的问题小结
2018/03/04 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
微信小程序时间控件picker view使用详解
2018/12/28 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
微信小程序实现多选删除列表数据功能示例
2019/01/15 Javascript
JavaScript监听一个DOM元素大小变化
2020/04/26 Javascript
详细探究Python中的字典容器
2015/04/14 Python
在GitHub Pages上使用Pelican搭建博客的教程
2015/04/25 Python
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
python图的深度优先和广度优先算法实例分析
2019/10/26 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
2021/01/13 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
Jabra捷波朗美国官网:用于办公、车载和运动的无线蓝牙耳麦
2017/02/01 全球购物
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
Why do we need Unit test
2013/01/03 面试题
职业生涯规划书的格式
2013/12/29 职场文书
公司门卫管理制度
2014/02/01 职场文书
Tomcat用户管理的优化配置详解
2022/03/31 Servers
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers