连高手都写不出来),刚进门。一直很羡慕人家玩爬虫,办公自动化,用python玩股票,看着都牛逼。我不想当菜鸟了,我也想发财!第一步是把每天学到的东西记录下来,加深印象。有没有骚年跟我一起冲啊!!!好吧好吧,我先走了。(如果小白看到,肯定对我写的持怀疑态度,这只是我自己的笔记;如果高手无意中看到,有误请指正!)递归函数,匿名函数,内置函数1.递归函数递归是一种编程思想。我不太擅长用语言来解释,后面会用代码来解释;例如,如果要遍历一个文件夹中的所有文件,通常使用递归来实现。1.1递归特性函数调用本身必须有出口1.2应用:3内数的累加#3+2+1defsum_nums(num):#exitifnum==1:return1returnnum+sum_nums(num-1)print(sum_nums(3))emmm...递归就是这样,返回3+sum_nums(2)-->3+2+sum_nums(1)-->3+2+1,然后结果6就来了出去!2.Lambda函数如果函数有返回值,而且只有一句话代码,那么可以用lambda来简化。2.1Lambda语法举个例子:fn=lambdaa:a+1等价于deffn(num):returnnum+1注意:如果直接输出lambda表达式,输出的是lambda函数的内存地址,而且print也要用(fn(2))这样写!2.2lambda的参数形式无参数lambda:100有参数lambdaa:一个默认参数lambdaa,b,c=100:a+b+c变长位置参数(返回元组)lambda*args:args变长keyWordparameter(returndictionary)lambda**kwargs:kwargs2.3lambda的应用应用一:判断一个数的大小并输出一个大数fn=lambdaa,b:aifa>belsebprint(fn(20,10))应用2:列表数据按字典键排序students=[{'name':'TOM','age':20},{'name':'ROSE','age':19},{'name':'Jack','age':22}]#按年龄从小到大排列学生。sort(key=lambdax:x['age'])print(students)这里有两点要说明一下:sort()中的参数key后面可以跟function,用来对list和dictionary进行排序根据字典的键;sort()还有一个参数reverse,默认reverse=False是升序,reverse=True是降序。sort()和sorted()谈论排序。顺便提一下这两个函数的区别。sort()是list的一种方法,但sorted不是。可以用代码来解释。#sort是在原list的基础上排序aa=[2,1,3]aa.sort()#returnsNoneprint(aa)#sorted返回一个新的list,不是list的方法bb=sorted(aa,reverse=True)print(bb)3.内置函数这里主要介绍3个高级内置函数。map(func,lst)将传入函数应用于列表的每个元素,将结果形成一个新列表,并返回一个迭代器。#map()计算`list1`序列中每个数的平方list1=[1,2,3,4,5]deffunc_double(num):returnnum**2print(list(map(func_double,list1)))输出结果为[1,4,9,16,25];reduce(func,lst)func必须有两个参数,每次func计算的结果与序列的下一个元素继续累加。importfunctools#reduce()计算list1序列中每个数的累加和deffunc_sum(a,b):returna+bprint(functools.reduce(func_sum,list1))输出结果为15注:reduce直接返回valuefilter(func,lst)过滤掉lst中不合格的元素,返回一个过滤对象。#filter()去除奇数,留下偶数deffunc_filter(num):ifnum%2==0:returnnumprint(list(filter(func_filter,list1)))输出为[2,4]。
