看这个例子:

def my_print(val):
print val

lst = [1, 2, 3]
func_list = []

for x in lst:
func_list.append(lambda: my_print(x))

for func in func_list:
func()
"""
3
3
3
"""

func_list = []
for x in lst:
func_list.append(lambda aaa=x: my_print(aaa))

for func in func_list:
func()
"""
1
2
3
"""


lambda出现时是函数声明,​​:​​右侧并不会管参数到底是哪个,所以要在左侧捕捉后传入。