匿名函数
- 匿名函数:
匿名函数的关键字为:lambda 冒号前面是形参,冒号后面是返回值。
代码:
from functools import reduce
def fun(*args,**kwargs):
return args,kwargs
print(fun([1,2,3,4]))
print(lambda *args,**kwargs:(args,kwargs))
def add(x,y):
return x+y
print(lambda x,y:x+y,[1,2,3,4])
print(reduce(lambda x,y:x+y,[1,2,3,4]))
运行
- 函数返回多个值的时候返回的是一个元组
class:面向对象
代码:
返回5以内数的平方
def mypow(x):
return x**2
print(list(map(lambda x:x**2,range(5))))
#返回10以内所有偶数
def is_odd(num):
return num%2==0
print(list(filter(lambda x:x%2==0,range(10))))
运行:
-
sorted函数:先传序列,再传key关键字
代码:Info = [
#等级 人数 班级
(‘A’,20,5),
(‘B’,15,3),
(‘C’,5,2)
]
#默认排序
print(sorted(Info))
#按照人数进行排序
print(sorted(Info,key=(lambda x:x[1])))
#按照班级进行排序
print(sorted(Info,key=(lambda x:x[2])))
#python 内置包
from operator import itemgetter
import random
#按照人数进行排序
print(sorted(Info,key=itemgetter(1)))
运行:
-
输入一串数组,将0放到最后
代码:n =int(input(‘数组长度:’))
li = [int(input()) for i in range(n)]
def move_zero(item):
if item ==0:
return 1
else:
return 0
for i in sorted(li,key=move_zero):#sorted默认升序排列,返回值为0的放在前面,返回值为1默认放在后面
print(i)
运行:
- 奇数偶数排序
代码:
import random
li = [random.randint(1,100) for i in range(10)]
print(li)
print(sorted(li,key=(lambda x:x%2==0)))
运行: