首页 技术 正文
技术 2022年11月18日
0 收藏 440 点赞 4,866 浏览 1850 个字
1. 什么时匿名函数
def 定义 的是有名函数:特点是可以通过名字重复调用
  def func(): #func = 函数的内存地址
    pass
匿名函数就是没有名字的函数:特点是只能在定义时使用一次2.为何要以匿名函数
  强调:
匿名函数的定义就相当于只产生一个变量值,而没有绑定任何名字,所以会在定义完之后就被回收,无法重复使用,
只能在定义时使用一次。
  应用:当某一个功能仅仅使用一次就没有重复使用的必要时,就应该定义成匿名函数3.如何使用匿名函数
lambda x,y : x+y
例子:print((lambda a,b : a+b ) ('hello ' , 'world') ) #需要注意匿名函数体要单独括号
4.匿名函数lambda和 内置函数的结合使用(max sorted map filter)
max求最大值
例子:比较字典中的每个人工资是谁最大
money ={
'egon': 3000,
'alex': 100000000,
'wupeiqi': 10000,
'yuanhao': 2000}

# 注意!!!!! 在字典中 max 只能是迭代什么返回什么,,只可以改变比较的对象
max( money , key = lambda k:money[k] )
sorted 排序
例子:
money ={
'egon': 3000,
'alex': 100000000,
'wupeiqi': 10000,
'yuanhao': 2000}# 此代码打印结果就可以把每个人的工资按照从小到大排列,加上reverse=Ture可以从大到小排列
print(sorted(money,key=lambda k:money[k],reverse=True))

# map 映射
#方式一:手动实现
# q=[]
names = ['alex', 'wupeiqi', 'yuanhao', 'kevin', 'hu老师']
# for i in names:
# a=i+'_sb'
# q.append(a)
# print(q)#方式二:列表生成式
print([i+'_sb' for i in names ])# 方式三:map+匿名函数lambda
print(list(map(lambda x:x+'_sb',names))) # 需要加个list把他添加到列表中,元组也可以,否则打印的就是一个内存地址

# filter   筛选/过滤
names=['alex_dsb','wxx_sb','kevin_sb','hu_sb','egon']
# 方式一:手动实现
new_names=[]
for name in names:
if name.endswith('sb'):
new_names.append(name)
print(new_names)# 方式二:列表生成式
new_names=[name for name in names if name.endswith('sb')]
print(new_names)# 方式三:filter+匿名函数
res=filter(lambda name:name.endswith('sb'),names)
print(res)
print(list(res))
1.什么是函数递归
  函数的递归调用是函数嵌套的一种特殊形式,特殊在调用一个函数的过程中又直接或者间接的调用了函数本身  递归本质就是一个循环的过程,
  但是递归必须满足两个原则:
    1.每进入下一层递归,问题的规模必须减小
    2.递归必须有一个明确的结束条件或者说有一个明确的进入下一层递归的条件
  并且递归有两个明确的阶段:
    1.回溯: 一层一层的递归调用下去
    2.递推:在某一层结束掉递归,然后一层一层返回2.为何要用递归:
  在某些情况下,基于递归来使用重复的过程比while循环更加简单3.怎么用递归
例子: 
def f1():
print('from f1')
f1()
f1()
二分法:
二分法是算法的一种,算法是如何高效地解决问题的思路
nums = [1, 13, 15, 23, 27, 31, 33, 57, 73, 81, 93, 94, 97, 101]  # 从小到大排列的数字列表
def chazhao(shuzi,nums):
if len(nums) == 0:
print('没找到!')
return
zhong=len(nums)//2
if shuzi > nums[zhong]:
qq=nums[zhong+1:]
chazhao(shuzi,qq)
elif shuzi< nums[zhong]:
qq=nums[:zhong]
chazhao(shuzi,qq)
else:print('找到了')chazhao(57,nums)

    					
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,082
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,557
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,406
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,179
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,815
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898