dirs = [lambda x, y: (x + 1, y),
lambda x, y: (x - 1, y),
lambda x, y: (x, y - 1),
lambda x, y: (x, y + 1)]
请问这是什么东西?又是列表又是函数,看不懂,可以解释一下吗
python里面一切皆对象,函数也是一个对象,可以赋值给一个变量。这里就相当于一个列表里面放了四个函数对象。 lambda是匿名函数标识。
lambda x,y: (x+1,y)冒号前面是参数,后面是返回值可以看成是
def a(x,y):
return (x+1,y)
只不过这个函数有名字a而上面的lambda函数没有名字
python 使用 lambda 来创建匿名函数, lambda [arg1 [,arg2,.....argn]]:expression
#这个是函数集合
dirs = [lambda x, y: (x + 1, y),
lambda x, y: (x - 1, y),
lambda x, y: (x, y - 1),
lambda x, y: (x, y + 1)]
print(dirs[0](1,2))
这是包括 4个 lambda 函数的列表。
列表允许根据情况选择列表的元素,即某个函数。
也就是说, 你可以通过 dirs[i] 的 i 的取值来控制使用哪个 lambda 函数。
例如,dirs0 可以实现 选择第 0 个 lambda 函数,结果为 (x0 + 1, y0)