廖雪峰python教程杨辉三角实战下载廖雪峰python16期全套完整版
下载地址 https://share.weiyun.com/RS9A6Xk6
资料目录 廖雪峰python视频教程1 爬虫的基本框架及知识(day1-day15) 廖雪峰python视频教程2 scapy框架及爬虫进阶(day16-day20) 廖雪峰python视频教程3 爬虫高级知识及就业培训(day21-day28) 廖雪峰python教程官网doc 廖雪峰 2018年官方最新Python3教程(一)pdf 廖雪峰 2018官方Python3教程(二)pdf 廖雪峰2018官方Python3教程(三)pdf 廖雪峰python学习笔记(入门+进阶).doc Python3高级教程(开课吧)pdf Python3零基础教程(开课吧)pdf 利用Python进行数据分析(中文版)pdf 廖雪峰商业爬虫案例 廖雪峰商业爬虫课件 廖雪峰商业爬虫练习答案 爬虫第一节-爬虫第十四节 Python爬虫预习书籍 python环境和pychram
举例 很好的zip()!那么就用它来解决前面列表中值对应相加问题吧。 >>> d = [] >>> for x,y in zip(a,b): ... d.append(x + y) ... >>> d [10, 10, 10, 10, 10] 比较这个问题的两种解法,似乎第一种解法适用面较窄,比如,如果已知给定的两个列表长度不同,那么第一种解法就出问题了,而第二种解法还可以继续适用。的确如此,不过,第一种解法也不是不能修订的。 >>> a = [1,2,3,4,5] >>> b = ["python","www.itdiffer.com","qiwsir"] 如果已知是这样两个列表,要将对应的元素“加起来”。 >>> length = len(a) if len(a)<len(b) else len(b) >>> length 3 首先用这种方法获得两个列表中最短的那个列表的长度。写出这句,就可以冒充高手了。 >>> for i in range(length): ... c.append(str(a[i]) + ":" + b[i]) ... >>> c ['1:python', '2:www.itdiffer.com', '3:qiwsir'] 我还是用第一个思路做的,经过这么修正一下,也还能用。要注意一个细节,在“加”的时候,不能直接用a[i],因为它引用的对象是一个int类型,不能跟后面的str类型相加,必须转化一下。 当然,zip()也是能解决这个问题的。 >>> d = [] >>> for x,y in zip(a,b): ... d.append(x + y) ... Traceback (most recent call last): File "<stdin>", line 2, in <module> TypeError: unsupported operand type(s) for +: 'int' and 'str' 报错!看错误信息,我刚刚提醒的那个问题就冒出来了。所以,应该这么做: >>> for x,y in zip(a,b): ... d.append(str(x) + ":" + y) ... >>> d ['1:python', '2:www.itdiffer.com', '3:qiwsir'] 这才得到了正确结果。 切记:Computer是一个姑娘,她非常秀气,需要敲代码的小伙子们耐心地、细心地跟她相处。 以上两种写法哪个更好呢? >>> result [(2, 11), (4, 13), (6, 15), (8, 17)] >>> zip(*result) [(2, 4, 6, 8), (11, 13, 15, 17)] zip()还能这么干,是不是有点意思? 下面延伸一个问题。 问题:有一个字典yinfor= {"name":"qiwsir","site":"qiwsir.github.io","lang":"python"},这个字典变换成:infor= {"qiwsir":"name","qiwsir.github.io":"site","python":"lang"}。 解析: 解法有几个,如果用for循环,可以这样做(当然,方法不限于下列几个)。 >>> infor = {} >>> for k, v in myinfor.items(): ... infor[v]=k ... >>> infor {'python': 'lang', 'qiwsir.github.io': 'site', 'qiwsir': 'name'} 下面用zip()来试试: >>> dict(zip(myinfor.values(), myinfor.keys())) {'python': 'lang', 'qiwsir.github.io': 'site', 'qiwsir': 'name'} 这是什么情况?原来这个zip()还能这样用。是的,本质上是这么回事。如果将上面这一行分解开来,就明白其中的奥妙了。 >>> myinfor.values() ['python', 'qiwsir', 'qiwsir.github.io'] >>> myinfor.keys() ['lang', 'name', 'site'] >>> temp = zip(myinfor.values(),myinfor.keys()) >>> temp [('python', 'lang'), ('qiwsir', 'name'), ('qiwsir.github.io', 'site')] >>> dict(temp) {'python': 'lang', 'qiwsir.github.io': 'site', 'qiwsir': 'name'} 至此,是不是明白zip()和循环的关系了呢?有了它可以让某些循环简化。
|