经典的Python题目【杭州多测师】【杭州多测师_王sir】

"""
这个m 遍历那个匿名函数每一次遍历到最后都是最大值3,m 括号里面的2是传给x 的实参
双循环打断了,m每次进去出来都取了最后一次的3。
m是匿名函数,可以理解为m=[lambda x : x *i for i in range(4)] 循环4次,每一次都取了0123最后的3
那个匿名函数中有循环。i 是0 1 2 3 m 进去后开始遍历 0进去3出来  因为m 遍历的是函数本身 函数有0 1 2 3 个个元素,m 本身也会进去4次。每一次都取个3出来
"""
def fun():
    list1=[]
    for i in range(4):
        def fun1(x):
            print(i)
            return x*i
        list1.append(fun1)
    return list1

a = fun()
print(a[0](2))


def func2():
    return [lambda x:x*i for i in range(4)]

# print(func2())
print([m(2) for m in func2()])

 

posted @ 2022-10-12 20:43  多测师_树哥  阅读(40)  评论(0编辑  收藏  举报