查看原文
其他

Python进阶系列连载(3)——那些容易被忽略的问题(下)

2017-12-09 王大伟 Python爱好者社区

作者:王大伟

Python爱好者社区唯一小编

博客:https://ask.hellobi.com/blog/wangdawei


前文传送门:

Python进阶系列连载(1)——那些容易被忽略的问题(上)

Python进阶系列连载(2)——那些容易被忽略的问题(中)


如果还没看过我的入门连载部分,先看:

Python从零开始系列连载(25)——Python的random模块简单使用(入门知(姿)识(势)学习的最后一篇(片))


当然,小编的免费入门课程已经有咯,看过连载的朋友可以看看视频再快速梳理一遍~

视频传送门:点击文末阅读原文


可变长元组参数


还记得在入门部分讲的函数的可变长参数么,*开头的收集到的的是元组参数,既然有收集,那就可能会有分散

今天我们要讲的就是收集的反面——分散


我们先看个演示:



divmod函数是一个求商和余数的函数,这里传入9和2,返回了4和1

即商为4,余数为1


如果我们想一步到位

使用原有的数组呢?

发现系统抛出异常


仔细看看异常内容

需要两个参数,但你只给了一个!


所以我们尝试分散,也就是今天要学的新内容




我们在传入的元组前加个*号,即可将元组拆开,有点像之前说过的元组拆包~


此时结果返回正常了


序列合体


还记得小学时候看的数码宝贝么?除了前期的进化可以提升数码宝贝的力量

后期更有合体的玩法!




小明:阴阳相合,我懂的!。。。


咳咳,我们今天要讲的是将序列(字符串,列表,元组)相互合并的操作


如果给你一个列表,一个元组,如下图,把他们一对对分别按顺序合并

你会怎么做?



小红:老师,我最喜欢的列表生成式子应该可以:



使用之后发现并不可以,但是改一下就ok:



小红啊,你这是投机取巧看出了数据的特征


小明有想法么?


小明:我觉得可以使用循环试试:



小明这次做的不错,有没有更方便的方法呢?


(众人沉默)


好的,那我们看看今天要讲的函数zip()

zip()函数接收两个或者多个序列,返回一个元组列表

每个元组包含来自每个序列中的一个元素


zip()函数名取自拉链zipper~



就像把两边结合在一起这种


好了,我们看看拉链的具体使用:



返回的结果是一个zip对象,你可以简单认为是一个压缩包


当我们要获取查看它的元素,可以使用循环遍历,如果我们想将结果放在一个list中呢?可以这样:



当然我们还可以将字符串和列表合并:



甚至多个序列合并:



zip()函数的出现为我们创建字典提供了新方法:



文件名和路径


还记得我们在入门阶段讲的路径么,有个细节要补充一下,让我们更加偷懒


返回当前目录:



返回当前目录有以下好处:

1.方便构造文件操作路径

2.提醒我们当前在什么目录操作


我们还可以检查该目录下是否存在某个文件:



今天作业是自己跟着操作一遍~

自己不敲代码永远学不会写代码

下课

人生苦短,我选Python

未完待续,连载中......

欢迎评论指出文中错误和提问~~~

Python爱好者社区历史文章大合集

Python爱好者社区历史文章列表(每周append更新一次)

福利:文末扫码立刻关注公众号,“Python爱好者社区”,开始学习Python课程:

关注后在公众号内回复“课程”即可获取:

0.小编的Python入门视频课程!!!

1.崔老师爬虫实战案例免费学习视频。

2.丘老师数据科学入门指导免费学习视频。

3.陈老师数据分析报告制作免费学习视频。

4.玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。

5.丘老师Python网络爬虫实战免费学习视频。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存