Python案例篇:七个Python高阶案例(晕题的不要轻易看)(python综合案例)

网友投稿 472 2022-09-04


Python案例篇:七个Python高阶案例(晕题的不要轻易看)(python综合案例)

引言

前几天发了一篇:《15个经典基础Python练手案例,基本功就是这样练成的》 大家反响都是不错的,于是乎今天我又来了。今天我们来点有难度的,直接上七个高阶案例以供大家享用~

目录

​​引言​​

​​一、排序及自定义函数之案例一:选择排序​​​​二、匿名函数的定义和使用​​​​三、高阶函数练习题​​​​四、高阶函数练习题​​​​五、求两个列表元素的和,返回新列表​​​​六、求字符串中每个单词的长度​​​​七、接收函数作为参数,或者将函数作为返回值​​

一、排序及自定义函数之案例一:选择排序

案例一:选择排序

使用选择排序的思想实现列表数据的升序排序

参考代码:

lt=[45,12,56,-32,-3,44,75,-22,100]length=len(lt)# print('排序前:'+str(lt))for i in range(0,length-1): #内层循环呢控制每一轮执行的次数,j可以认为是比较空间或箭头 for j in range(i+1,length): #判断两空间中的内容,如果选中空间比比较空间中的数据大,则交换数据 if lt[i]>lt[j]: #temp=lt[i] #lt[i]=lt[j] #lt[j]=temp lt[i],lt[j]=lt[j],lt[i]# print('排序后:'+str(lt))

二、匿名函数的定义和使用

需求:字符串数据’This is \n a \latiao’ --> 得到’This is a test’

步骤一:使用字符串的split()函数–>作用:可以默认去除字符串中的空格、\n、\t等内容

然后将字符串数据以列表的形式返回

步骤二:使用字符串的join()函数–>以空格作为连接的格式,将列表中的元素连接成为一个字符串数据返回

str1='this is \na \latiao'lt=str1.split()print(lt) str2=' '.join(lt)print(str1,type(str1))print(str2,type(str2)) print(lambda x:' '.join(x.split())(str1))

三、高阶函数练习题

1.lt = ['sdfasdfa', 'ewqrewrewqr', 'dsafa12312fdsafd', 'safsadf']

–> 得到长度列表

2.tp = ('TOM', 'Lilei', 'JAck', ‘HanmeiMeI’)

–> 得到列表(所有元素的首字母大写)

3.lt1 = [1,2,3,4]lt2 = [5,6,7,8]计算得到:lt1[0]lt2[0] + lt1[1]lt2[1] + ... 15 + 26 +

最终得到累加以后的值

参考代码:

from functools import reducelt = ['sdfasdfa', 'ewqrewrewqr', 'dsafa12312fdsafd', 'safsadf']print(list(map(len,lt))) tp = ('TOM', 'Lilei', 'JAck','HanmeiMeI') #自定义函数:def func(name): return name.capitalize() print(list(map(func,tp)))print(list(map(lambda x:x.capitalize(),tp)))print(list(map(str.capitalize,tp))) lt1=[1,2,3,4,5]lt2=[5,6,7,8] #使用map的思想得到组合数据对象(map类型),对象中的元素内容为:15 26 37 48lt1_map=map(lambda x:x*10,lt1) #map中的内容为:10,20,30,40ret_map=map(lambda x,y:x+y,lt1_map,lt2) #map中的内容为:15,26,37,48print(list(lt1_map))print(list(ret_map)) #使用reduce的思想将map对象中的数据进行累加num=reduce(lambda x,y: x + y,ret_map)print('和值为: %s' %num)

四、高阶函数练习题

高阶函数以及匿名函数之间的配合使用

from functools import reduce#模块一:lambda和filter的结合使用#lt = [1,2,3,4,5,6,7,8,9] --> [3,6,9]]lt = [1,2,3,4,5,6,7,8,9]print(list(filter(lambda x:x%3==0,lt))) #模块二:lambda和map的结合使用#容器/序列对象:range对象mo=map(lambda x:x**2,range(5))print(list(mo)) #模块三:'''在模块二的基础上扩展功能:range(10)过滤以后保留的数据范围为:(5,50)之间'''mo=map(lambda x:x**2,range(10))fo=filter(lambda x:x>5 and x<50,mo)print(list(fo)) #模块四:lambda和reduce配合使用lt=[1,2,3,4,5]my_sum=reduce(lambda x,y:x+y,lt)print(my_sum)

五、求两个列表元素的和,返回新列表

参考代码:

lt1=[1,2,3,4]lt2=[5,6]print(list(map(lambda x,y:x+y,lt1,lt2)))

六、求字符串中每个单词的长度

参考代码:

content = 'Welcome To latiao'word_list=content.split()mo=map(len,word_list)print(list(mo),type(mo))

七、接收函数作为参数,或者将函数作为返回值

接收函数作为参数,或者将函数作为返回值

# 创建一个列表l = [1,2,3,4,5,6,7,8,9,10]# 定义一个函数,用来检查一个任意的数字是否是偶数。def fn2(i) : if i % 2 == 0 : return True return False # 这个函数用来检查指定的数字是否大于5def fn3(i): if i > 5 : return True return False# 这个函数可以将3的倍数取出def fn4(i): if i % 3 == 0 : return True return Falsedef fn(func , lst) :# 定义高阶函数fn # 创建一个新列表 new_list = [] # 对列表进行筛选 for n in lst : new_list.append(n) # 返回新列表 return new_list#此时就可以随意调用不同的函数来获得不同的结果了,#只需要改变高阶函数fn的两个参数即可。 print(fn(fn4 , l))#此时调用的是fn4,列表是l,即意味着取出l列表中所有能被3整除的数。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot启动前执行方法的四种方式总结
下一篇:【预测模型】基于Logistic改进的麻雀搜索算法优化BP神经网络实现数据预测matlab代码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~