python中itertools模块zip_longest函数详解
itertools.zip_longest
itertools模块包含创建高效迭代器的函数,这些函数的返回值不是list,而是iterator(可迭代对象),可以用各种方式对数据执行循环操作.
zip_longest(it_obj1, …, it_objN, fillvalue=None)时,其函数实现的功能和内置zip函数大致相同(实现一一对应),不过内置的zip函数是已元素最少对象为基准,而zip_longest函数是已元素最多对象为基准,使用fillvalue的值来填充
思路大致如此: 找出元素个数最多 >算出元素个数差值>填充差值个元素到各个对象
def zip_longest(*it, **kwargs):its = {k: len(k) for k in it} # 这里我是用字典把参数对象和参数的元素个数结果作为一个字典max_num = max(its.values()) # 确定迭代对象元素最大值 result = [] # fillvalue = kwargs.get('fillvalue', None) # 元素较少的填充值for x in range(max_num): # 已最大次为基准循环result = []for it in its: # 循环所有迭代对象,以便进行填充数据element = list(it) # 将if len(it) < max_num: # 如果迭代对象的元素个数比最大值小,则要填充数据for i in range(max_num - len(it)): # 此为要填充数据的个数element.append(fillvalue) # 填充操作,完成后所有的迭代对象的元素个数都为一致 result.append(element[x]) # 生成一一对应结果,存放到list中yield tuple(result) # 将结果输出
测试
res = zip_longest('abc', '12')
for x in res:print(x)
结果
(‘a’, ‘1’)
(‘b’, ‘2’)
(‘c’, None)
参考链接:https://www.jb51.net/article/141848.htm
python中itertools模块zip_longest函数详解相关推荐
- python平方数迭代器_对python中的高效迭代器函数详解
python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...
- Python中random模块生成随机数详解
Python中random模块生成随机数详解 本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下 Python中的random模块用于生成随机数. ...
- python中plt定义,对Python中plt的画图函数详解
1.plt.legend plt.legend(loc=0)#显示图例的位置,自适应方式 说明: 'best' : 0, (only implemented for axes legends)(自适应 ...
- python中selenium模块驱动谷歌详解
python中selenium模块驱动谷歌详解 Selenium的介绍.配置和调用 Selenium(浏览器自动化测试框架) 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中 ...
- python中xlrd模块的使用详解
python中xlrd模块的使用详解 两个问题: 什么是xlrd模块? 为什么使用xlrd模块? 1.什么是xlrd模块? python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读 ...
- python中文件读写--open函数详解
python中open函数详解 在python中文件的读取分为三步走: 读:打开文件 -> 读文件 -> 关闭文件 (有点像把大象放进冰箱需要几步?的问题) 1.open函数 open函数 ...
- python中内置数学函数详解和实例应用之三角函数_初级阶段(二)
学习目标: 利用python进行三角函数运算 学习内容: python中的三角函数合集和应用实例 转载请注明出处! 学习产出: 环境:python 3.7, 利用shell进行实例操作. Note: ...
- python中re模块的span,详解Python正则表达式re模块
正则是处理字符串最常用的方法,我们编码中到处可见正则的身影. 正则大同小异,python 中的正则跟其他语言相比略有差异: 1.替换字符串时,替换的字符串可以是一个函数 2.split 函数可以指定分 ...
- [转载] Python 中reduce()与lambda函数详解
参考链接: Python中的reduce a = [2,22,222] Sn = reduce(lambda x,y:x+y,a) print "计算和为:",Sn reduce( ...
- python中input()函数详解
1.input()函数赋值后数据在python内部的类型. if __name__=="__main__":a=input()print(type(a))b=input()prin ...
最新文章
- Spring boot 梳理 - 在bean中使用命令行参数-自动装配ApplicationArguments
- 浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源
- linux 无线网卡 延时 丢包 模拟,Linux模拟网络丢包与延迟的方法
- 控制uibutton的title范围
- 【送给读者】全新苹果 AirPods,包邮送一套!
- 泣血推荐丨学编程开始前就该知道的工具集,提升五倍学习效率
- OkHttp+Stetho+Chrome调试android网络部分(原创)
- JavaScript之常见算法排序
- adb脚本选择语句_Python开发:王者荣耀自动刷金币脚本
- 内存一致性模型(Memory Consistency Models)
- 推荐几个不错的苹果电脑截图工具
- access 更新整列数据_Access如何用sql更新表格数据
- Dorado7使用常见问题,不定时持续更新。
- 启动 AXD 配置开发板
- SiamRPN++理解
- 代理http,代理https,代理sk5,的正向代理和反向代理
- 第五章 社会存在发展的基础和基本结构
- java画好看坦克_java绘图,画坦克
- [米家]窗帘电机【立创开源】
- java apex_Apex基础知识(一)