函数-lambda表达式
- 不加变量
- 加变量
2。1
ps:emp.get(参数1,函数名1)(函数参数)
即在参数1 对应的键没找到,则默认执行函数名1 对应的函数
3. 通过字典表来使用函数/lambda
def hello_c(name):
print('你好',name)
def hello_e(name):
print('hello',name)
def hello_j(name):
print('kaoni',name)
lang={'c':hello_c,'e':hello_e,'j':hello_j,'r':lambda name:print('aaaaaa',name)}
while True:
name=input('please input your name:\n')
if name=='stop':
break
language=input('chinese => c\nenglish => e\njanpa => j\nrussian => r\n')
lang.get(language)(name)
- 将一组函数封装起来
def hello_c(name):
print('你好',name)
def hello_e(name):
print('hello',name)
def hello_j(name):
print('kaoni',name)
def hello(action,name):#action参数可以是以上的函数名,通过调用hello函数来调用以上所有函数
action(name)
hello(hello_c,'pang')
函数工具:
1. map(函数,可迭代对象)–返回的类型就是map对象
ps:生成1~21顺序列表:
l=list(range(1,21))
例:从列表中找到偶数组成新列表
l=list(range(1,21))
#推导法
result=[x for x in l if x%2==0]
print(result)
#循环法
for n in l:
if n % 2 ==0:
result.append(n)
print(result)
#map()
def search(x):
if x%2==0:
return x
result=list(map(search,l))
#map(函数,可迭代对象),表示从l中获取值用于前面的函数
2. filter(函数,可迭代对象)—返回的类型是filter对象,不能直接打出列表,但是可以以filter对象的身份打出来。
#两种方法
#1.正常函数
def choose(x):
if x%2==0:
return x
l=list(range(1,21))
re=filter(choose,l)#re里是filter对象,不能直接打出列表,需要转换
#打出filter对象
for i in re:
print(i,end=' ')
#转化列表存储
res=[]
res=list(re)
#2.lambda
re=filter(lambda n:n%2==0,l)