关于Python匿名函数的5道练习题

71 阅读1分钟

1.下面程序的输出结果是:

d = lambda p:p*2
t = lambda p:p*3
x = 2
x = d(x)
x = t(x)
x = d(x)
print(x)# 24

2.现有两元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]

ret = max(dic,key=lambda k:dic[k])

3.以下代码的输出是什么?请给出答案并解释。

def multipliers():
    return [lambda x:i*x for i in range(4)]
print([m(2) for m in multipliers()])

请修改multipliers的定义来产生期望的结果。

[6, 6, 6, 6]

4.用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb

name=['alex','wupeiqi','yuanhao','nezha']
# def func(x):
#     return x+'_sb'
ret = list(map(lambda x:x+'_sb',name))
print(ret)

5: 用filter函数处理数字列表,将列表中所有的偶数筛选出来

num = [1,3,5,6,7,8]

num = [1,3,5,6,7,8]
print(list(filter(lambda x:x%2==0,num)))