分享从群聊中学到的一个python中zip()用法的小知识点

举报
小博测试成长之路 发表于 2022/08/12 22:58:48 2022/08/12
【摘要】 公众号的老粉丝们应该知道,本公众号是有粉丝交流群的哈,群内经常有大佬们在讨论学习相关的内容,而我也本着营造一个学习氛围好的群为目的,一直在朝着这个方向努力。 接下来看下最近群友在群里问的一个问题: 刚开始看到这段代码的时候,python基础薄弱的我还在想,难道是列表推导式写的有问题?然后自己写代码去验证了下,这个写法...

公众号的老粉丝们应该知道,本公众号是有粉丝交流群的哈,群内经常有大佬们在讨论学习相关的内容,而我也本着营造一个学习氛围好的群为目的,一直在朝着这个方向努力。

接下来看下最近群友在群里问的一个问题:

0f6f321a8f911242e211625132037a72.png

刚开始看到这段代码的时候,python基础薄弱的我还在想,难道是列表推导式写的有问题?然后自己写代码去验证了下,这个写法没问题,然后我又在最后加了一个print()随便打印点内容试了下,然后发现也没问题,最后怀疑是zip那里有什么特殊的操作。

先来看下zip函数的作用:

https://www.programiz.com/python-programming/methods/built-in/zip

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。注意:在 Python 2.x zip() 返回的是一个列表

我们直接通过上面的网址中的案例大致的了解一下zip函数的作用:

1、不传参数调用以及传相同长度的列表调用

7af08ae457a4d49eda9259ba458235a9.png

上面的案例,演示的是zip函数分别不传参和传两个相同长度的列表的情况

2、传不同长度的可迭代对象

c17ffb4559dc8941e16b7dff0232df11.png

从上可以看出当打包的可迭代对象中的元素个数不一样的时候,其中某一个对象遍历完成后,就停止迭代,即:以最小的元素个数为准。

3、使用zip进行解压

801a96c0bcb075f212f00e058457297e.png

看到这,是不是发现跟上面的问题没什么关系呢?

那么,接下来我们再往下看:
我们在python命令行窗口输入help(zip)看一下它的帮助文档:

cc4b190b30d7a39557afe28a80b9a3bd.png

从上面可以看出这个zip返回的对象是一个迭代器,遍历就是不断调用__next__()的过程,而这个过程是单向的,到最后一个元素时会抛出StopIteration异常终止此次遍历。

总结:虽然编程语言现在好多测试都会,但是一些特殊的用法可能不是天天用的话 ,学过了也会忘记,有时候群里帮大伙一起看看问题,也能帮自己回顾一下,对自己也是一种提升。对问问题的人来说,可以锻炼自己问问题的技巧,对查看的人来说,能否快速找到问题所在,是每个人需要提升的技能。

文章来源: xiaobotester.blog.csdn.net,作者:小博测试成长之路,版权归原作者所有,如需转载,请联系作者。

原文链接:xiaobotester.blog.csdn.net/article/details/126277416

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。