zoukankan      html  css  js  c++  java
  • 面试题解析

    面试题

    def add(n,i):
        return n+i
    def test():
        for i in range(4):
            yield i
    g=test()
    for n in [1,10]:
        g=(add(n,i) for i in g)
        # 第一次for循环g=(add(n,i) for i in test())
        # 第二次for循环g=(add(n,i) for i in (add(n,i) for i in test()))
    res=list(g)
    
    # i = 0
    # for i in range(8):
    #	pass
    # print(i)
    
    g = (add(n, i) for i in g)
    g = (add(n, 0), add(n, 1), add(n, 2), add(n, 3))
    g = (add(n, i) for i in (add(n, 0), add(n, 1), add(n, 2), add(n, 3)))
    g = (add(n,add(n,0)),add(n,add(n,1)),add(n,add(n,2)),add(n,add(n,3)))
    
    def multipliers():
        return [lambda x, i=i: i*x for i in range(4)]
        # 0, 1, 2, 3
        # [func(x): return 0*x, func(x): return 1*x,
        # func(x): return 2*x, func(x): return 3*x, ]
    print([m(2) for m in multipliers()])  # [0, 2, 4, 6]
    
    # [func(x): return 0*2, func(x): return 1*2,
    # func(x): return 2*2, func(x): return 3*2, ]
    # [0, 2, 4, 6]
    # [6, 6, 6, 6]
    
    # 闭包函数的延迟绑定
    # 在内层函数执行时才会绑定变量i
    def multipliers2():
        list1 = []
        for i in range(4):
            def func(x, i=i):
                return x * i
            list1.append(func)
        return list1
    print([m(2) for m in multipliers2()])  # [0, 2, 4, 6]
    
    # [0, 2, 4, 6]
    
    
  • 相关阅读:
    个人任务
    个人任务。。
    个人任务。
    个人任务
    未来周计划(一)
    澡堂人数实时查询助手的NABC分析
    react 中的fragments
    数组
    如何区分对象、数组、null
    数组的并集,交集,差集的实现
  • 原文地址:https://www.cnblogs.com/lddragon1/p/11987194.html
Copyright © 2011-2022 走看看