当前位置: 首页 > news >正文

做网站需要学多久天津网站优

做网站需要学多久,天津网站优,知名做网站哪家好,创建自己的网页要多少钱什么是高阶函数#xff1a;一个函数可以作为参数传给另外一个函数(一个函数可以用来接收另一个函数作为参数)#xff0c;或者一个函数的返回值为另外一个函数(若返回值为该函数本身#xff0c;则为递归)#xff0c;满足其一则为高阶函数。函数的形参位置必须接受一个函数对…什么是高阶函数一个函数可以作为参数传给另外一个函数(一个函数可以用来接收另一个函数作为参数)或者一个函数的返回值为另外一个函数(若返回值为该函数本身则为递归)满足其一则为高阶函数。函数的形参位置必须接受一个函数对象。代码理解高阶函数的含义1 函数当做参数被传递到另个函数是什么样的。把abs()函数赋值给了f变量接下来就可以像使用abs()函数本身那样使用f变量了,区别只是换了个名字而已23 f abs #将求绝对值的abs函数赋值给f变量4 f(-123) #f变量等同于abs函数的功能和性质,区别只是换了个别名5 print(f(-123)) #输出结果 1236 print(type(f)) # 查看下这个f变量的类型,显示为内置函数,因为它的真身就是内置abs()函数78 这说明变量可以指向函数既然变量可以指向函数而我们知道函数的参数可以接收变量。也就是说一个函数可以接收另一个函数作为参数一起来看看下面这个例子9 defadd_(a, b, f_):10 return f_(a) f_(b) #在本例中等同于 abs(a) abs(b)1112 result add_(-10, -20, abs) #这里把python内置函数abs作为参数传递给add_13 print(result) #30代码演示高阶函数两种场景1 #高阶函数之 ---》参数为函数2 defbar():3 print(in the bar..)4 deffoo(func):5 func()6 print(in the foo..)78 foo(bar)91011 #高阶函数之 ---》返回值为函数12 defbar():13 print(in the bar..)14 deffoo(func):15 print(in the foo..)16 returnbar17 resfoo(bar)18 res()1920 以上两个示例中,函数foo()为高阶函数。示例一中函数bar作为foo的参数传入示例二中函数bar作为foo的返回值。注意函数名(例如bar 、foo)--其为该函数的内存地址函数名括号(例如 bar()、foo() )--调用该函数python里的高阶函数有 filter、map、reduce、sorted、匿名函数lambda递归函数等。1). map函数功能map函数接收的是两个参数接收一个函数 f 和一个或多个序列list其功能是将序列中的值处理再依次返回至新列表内其返回值为一个迭代器对象。语法格式map(function, iterable,[iterable1, ...iterablen])参数(1).function 函数对象 (2).iterable序列(可迭代)对象 (字符串、列表、range...)返回值得到的这个map对象是一个迭代器对象属于惰性序列的范畴。代码演示map实现原理1 #需求将lt [1,2,3,4,5] 转换成 [1,2,3,4,5]23 #代码实现一使用传统技术来实现4 lt [1,2,3,4,5,6]5 lt1 []6 for i inlt:7 num int(i)8 lt1.append(num)9 print(lt1) #[1, 2, 3, 4, 5, 6] 由于列表属于非惰性序列范畴即可以直接打印看效果101112 #代码实现二使用新技术来实现13 #思路步骤一定义一个函数功能将str数据 -- int数据14 importcollections15 lt [1,2,3,4,5,6]16 defchr2Int(chr):17 returnint(chr)1819 mo map(chr2Int,lt) #这里的chr2Int后面不能加(),也不能传参*****20 print(map,type(mo)) #21 print(isinstance(mo,collections.Iterator)) #True,验证是否是迭代器对象,True才能使用next22 print(next(mo)) #123 print(list(mo)) #[2, 3, 4, 5, 6] 将map对象(惰性的)转换为list对象(非惰性的)242526 #代码实现三终极操作27 print(list(map(chr2Int,lt))) #[1, 2, 3, 4, 5, 6]28 print(list(map(int,lt)) #[1, 2, 3, 4, 5, 6]2930 map(int,lt)执行过程如下31 1).lt -- 取出第一个元素1当做实际参数传递给int函数的形参位置 -- int(1),将转换以后的结果1保留到map对象的第一个元素位置32 2).lt -- 取出第二个元素2当做实际参数传递给int函数的形参位置 -- int(2),将转换以后的结果2保留到map对象的第二个元素位置33 以此类推...34 直到map函数执行完了整个map对象才真正成型了...代码演示示例1 #实例1 lt [1,2,3,4,5] -- 得到[1,2,3,4,5]23 lt [1,2,3,4,5]45 #自定义函数从int --》 str6 defint2Str(i):7 returnstr(i)89 print(list(map(int2Str,lt))) #[1, 2, 3, 4, 5]10 print(list(map(str,lt))) #[1, 2, 3, 4, 5]11 print(list(map(lambda x: str(x),lt))) #[1, 2, 3, 4, 5]121314 #实例2lt [1,2,3,4,5] -- 得到[1,4,9,16,25]1516 lt [1,2,3,4,5]1718 #自定义函数目标实现开方操作19 defkaifang(num):20 return num ** 22122 print(list(map(kaifang,lt))) #[1, 4, 9, 16, 25]23 print(list(map(lambda x: x ** 2,lt))) #[1, 4, 9, 16, 25]map结合匿名函数使用用的比较多2).reduce函数功能reduce函数也是一个参数为函数一个为可迭代(序列)对象的高阶函数但reduce()传入的函数必须接收两个参数reduce()对list的每个元素反复调用函数function。所以reduce()函数接收的参数和 map()类似但是行为不同。reduce() 函数会对参数序列中元素进行累积其返回值为一个值而不是迭代器对象故其常用与叠加、叠乘等。语法格式reduce(function, iterable[, iterable1,...,iterablen] [, initializer])参数function -- 函数有两个参数。iterable -- 可迭代对象。initializer -- 可选初始参数返回值为一个值而不是迭代器对象【注意】reduce函数属于functools模块中的函数所以需要显示的先导入functools模块再使用from functools import reduce代码演示reduce实现原理1 from functools importreduce23 当调用reduce(f,[1,3,5,7,9])时reduce函数将做如下计算由于f这个函数的功能是计算两个元素的值所以先计算头两个元素f(1,3)4 结果为4再把结果和第3个元素计算f(4,5)结果为9再把结果和第4个元素计算f(9,7)结果为165 再把结果和第5个元素计算f(16,9)结果为25由于没有更多的元素了计算结束返回结果25。6 deff(x, y):7 return x y89 result reduce(f, [1, 3, 5, 7, 9])10 print(result) #25111213 reduce()**还可以接收第3个可选参数作为计算的初始值。如果把初始值设为100如计算结果将变为125因为第一轮计算是计算初始值和第一个元素f(100, 1)结果为101。14 reduce(f, [1, 3, 5, 7, 9], 100)151617 #使用 lambda 匿名函数18 reduce(lambda x, y: xy, [1,3,5,7,9])1 reduce函数执行顺序先将lsd中的第一和第二个元素传入到fn中参与运算运算后得到结果再和第三个元素传入到fn中参与运算以此类推...23 #需求得到元祖tp (1,2,3,4)中元素的和值45 首先自定义函数 -- add作用对列表中的元素进行求和操作 def add(x,y)6 然后使用reduce函数执行过程如下7 第一次add(1,2)8 第二次add(add(1,2),3)9 第三次add(add(add(1,2),3),4)1011 #代码实现一递归的思想来实现12 tp (1,2,3,4)13 defmySum(num):14 if num 1:15 return 116 return num mySum(num - 1)1718 print(mySum(4))192021 #代码实现二reduce函数实现22 from functools importreduce23 defadd(x,y):24 return x y2526 res reduce(add,tp)2728 print(res,type(res)) #10 29 print(reduce(lambda x,y: x y,tp)) # 1030 print(sum(tp)) # 10直接使用内置函数sum()了代码演示示例1 #实例1lt [1,2,3,4] 得到其中元素的乘积23 lt [1,2,3,4]4 print(reduce(lambda x,y: x *y,lt))56 #实例2从键盘读入一个整数字符串数据例如12345将其转换为123457 注意不能直接使用int()来实现.思路使用map和reduce配合来实现8 步骤一12345 --》拆分为散装数据1 2 3 4 5 可以使用map来实现9 步骤二将map对象中的数据 1 2 3 4 5 组合成为 -- 12345 可以使用reduce来实现10 11 from functools importreduce1213 str1 1234514 defchr2Int(str):15 returnint(str)1617 defzuhe(x,y):18 return x * 10 y1920 mo map(chr2Int,str1)21 num reduce(zuhe,mo)22 print(num,type(num)) #12345 232425 #终极版26 print(reduce(lambda x,y: x * 10 y,map(int,str1))) #123453).filter函数功能filter()函数也是接收两个参数接收一个函数和一个序列的高阶函数其主要功能是过滤过滤掉不符合条件的元素序列的每个元素作为参数传递给函数进行判然后返回 True 或 False最后将返回 True 的元素放到新序列中。filter的意思在计算机领域中我们都称为过滤器。语法格式filter(function, iterable)参数和map、reduce一样理解function判断函数iterable 可迭代对象。返回值一个惰性序列对象(filter对象迭代器对象)例如列表代码演示示例1 #示例1lt [1,2,3,4,5,6,7,8] -- 得到[2,4,6,8]23 lt [1,2,3,4,5,6,7,8]4 #代码实现一老技术5 lt1 []6 for i inlt:7 if i % 2 0:8 lt1.append(i)910 print(lt1)111213 #代码实现二新技术(filter)14 deffunc(o):15 if o % 2 0:16 returnTrue17 returnFalse1819 fo filter(func,lt)2021 print(fo,type(fo)) #22 print(list(filter(func,lt))) #[2, 4, 6, 8]23 print(isinstance(fo,collections.Iterator)) #Ture24 print(isinstance(fo,collections.Iterable)) #Ture25 print(next(fo)) #226 print(next(fo)) #427 print(list(fo)) #[6, 8]282930 #终极版31 print(list(filter(lambda x:x % 2 0,lt))) #[2, 4, 6, 8]323334 #示例2lt [345,0,abcde,1.2,0,3.14,0.0,haha,hehe,True,False,[],(),{},{1,2,3},[10,20,30],{name:zs,age:30}None]35 得到如下效果lt [345,abcde,1.2,3.14,haha,hehe,True,{1,2,3},[10,20,30],{name:zs,age:30}]3637 lt [345,0,abcde,1.2,0,3.14,0.0,haha,hehe,True,False,[]38 ,(),{},{1,2,3},[10,20,30],{name:zs,age:30},None]3940 print(list(filter(lambdax: bool(x),lt)))41 #或者42 print(list(filter(bool,lt)))434445 #示例3lt1 [aaaaaaaa,bbbbb,cccccc,ddd]得到如下效果[aaaaaaaa,cccccc]4647 lt1 [aaaaaaaa,bbbbb,cccccc,ddd]4849 print(list(filter(lambda x: len(x) 5,lt1)))高阶函数以及匿名函数之间的配合使用(练习)1 模板一lambda和filter的配合使用2 #需求lt [1,2,3,4,5,6,7,8,9] -- 得到[3,6,9]34 print(list(filter(lambda x: x % 3 0,lt)))567 模板二lambda 和map的配合使用8 #需求演示开平方操作 -- 容器对象range910 mo map(lambda x: x ** 2,range(5))11 print(list(mo))121314 模板三在模板二的基础上进行功能扩展range(10)过滤以后保留的数据范围大小为(5,50)之间1516 mo map(lambda x: x ** 2,range(10))17 fo filter(lambda x: x 5 and x 50,mo)18 print(list(fo))192021 模板四lambda 和reduce配合使用22 #求和值23 importfunctools2425 lt [1,2,3,4,5]2627 my_sum functools.reduce(lambda x,y: x y,lt)28 print(my_sum)293031 模板五求两个列表对象中元素的和返回新列表:32 lt1 [1,2,3,4], lt2 [5,6,7,8], 结果lt3 [6,8,10,12]3334 mo map(lambda x,y: x y,lt1,lt2)35 print(list(mo))363738 模板六求字符串中每个单词的长度content welcome to shanghai, 结果[7,2,8]40 #使用切割的思想切完之后得到一个列表对象内部元素[welcome,to,shanghai]41 words_list content.split()42 mo map(len,words_list)43 print(list(mo))
http://www.huolong8.cn/news/161793/

相关文章:

  • 壁纸公司网站源码大型购物网站排名
  • 佛山建站怎么做免费qq刷赞网站推广
  • 南宁模板做网站金融理财网站源码
  • seo查询网站是什么各大网站图片
  • 制作公司网站设dw作业模板免费
  • 专门做酒店网站wordpress 百度分享按钮
  • 凡科建站怎么用北京专业网站制作服务标准
  • 荷塘网站建设学校宣传软文
  • 17网站一起做网店株洲wordpress 设置缓存
  • 云南网站设计模板福建省建设工程资格中心网站
  • 做名片用什么网站如何计算网站pv
  • 湖南网站营销推广长沙建设公司网站
  • 适合在线做笔试的网站小程序开发教程
  • 怎么做网店网站seo推广原理
  • 阿里云网站建设与发布题库如何注册公司支付宝账号
  • 找制作网站公司微信自建小程序
  • 论坛网站 备案做网站优化期间能收到网站吗
  • 哪个地方旅游网站做的比较好米趋外贸网站建设
  • 郑州快速网站优化公司哪家好我做的网站怎么是危险网站
  • 网站后台登陆不了wordpress登录页面创建
  • 精品课程网站开发项目网站内怎样做关键词有效果
  • 门户网站建设技术方案国内最好景观设计公司排名
  • 太原加盟网站制作湖北省建设工程造价管理协会网站
  • 设计网站公司咨询亿企邦自己做的网址如何推广
  • 新郑市网站建设小程怎样做好网站建设
  • 中国建设银行学习网站wordpress主题整站
  • ui界面设计案例婚纱网站怎么做seo
  • 江苏备案网站名称怎么做二手房网站
  • 网站制作建设公司哪家好app需要网站有哪些
  • 动易sitefactorycms 网站配置保存不了问题专业管网建设服务