python匿名函数的相关操
-
匿名函数
#nums = [124124,3521,124,62,3457,234,23,6357,134,436] #nums.sort() #列表从小到大排序 #print(nums) #nums.sort(reverse=True) #列表从大到小排序 #print(nums) f1 = lambda x,y:x+y # lambda 返回函数所以必须用变量名接收 print(f1(3,4)) #这里是调用 f1这个函数 把 3,4 传递给x,y # 运行结果 7
-
匿名函数的应用
infors = [{'name':'laowang','age':18},{'name':'banzhang','age':20},{'name':'tuomasi','age':17}] # 这里的x 取的是列表里的元素字典 x['name'] 是字典里的name键的值 # 这里的sort默认是把列表每个元素进行比较 # 这里的sort吧列表的元素传递给了x infors.sort(key=lambda x:x['name']) print(infors) # 运行结果 [{'name': 'banzhang', 'age': 20}, {'name': 'laowang', 'age': 18}, {'name': 'tuomasi', 'age': 17}]
-
匿名函数当做实参
def test(a,b,func): result = func(a,b)#func 就是在调用lambda匿名函数 lambad匿名函数 自带return return result num = test(11,22,lambda x,y:x+y) # 把 11,22,lambda 这三个的引用传递给 a,b,func print(num) # 运行结果 33
-
Python2里动态录入函数
#coding=utf-8 def test(a,b,func): result = func(a,b) return result func_new = input("请输入一个匿名函数:") num = test(11,22,func_new) print(num) # 运行结果 请输入一个匿名函数:lambda x,y:x+y 33
-
Python3里动态录入函数
def test(a,b,func): result = func(a,b) return result # eval回到被转换前的类型 # 列你输入的 "lambda x,y:x+y" 就换变成 lambda x,y:x+y func_new = eval(input("请输入一个匿名函数:")) # eval按照你输入的执行列你输入的5+6这里就会显示11, 要是没有eval就会显示5+6的字符串 num = test(11,22,func_new) print(num) # 运行结果 请输入一个匿名函数:lambda x,y:x+y 33
-
交换两个变量值的方式
a = 10 b = 20 ''' 第一种 c = 0 c = a a = b b = c ''' ''' 第二种 30=10+20 a = a + b 10=30-20 b = a - b 20= 30-10 a = a - b ''' a,b = b,a #只能python里使用 这是先算右边 不用考虑左边 直接吧右边的值赋值过去 print(a) print(b) # 运行结果 20 10
-
知识点补充
# a = 100 因为数字是不可变类型 a = [100] #全局变量a列表会变 因为列表是可变类型 print(id(a)) def test(num): #传递数值,所以num指向了200 num+=num#num指向的地址不变修改里面的内容 python里 num+=num 不等价于 num=num+num # num=num+num #num指向了新对象的地址 print(id(num)) print(num) test(a) print(a) # 运行结果 4322281864 4322281864 [100, 100] [100, 100]