你知道怎么读这个python例子吗?
dual = Graph([f_edges,lambda f1,f2: set(f1).intersection([(e[1],e[0]) for e in f2])])
我想看看包含Sage项目参数的确切内容。
代码来自这里: - https://trac.sagemath.org/ticket/6236
http://doc.sagemath.org/html/en/reference/graphs/sage/graphs/graph.html#graph-format
答案 0 :(得分:0)
Lambdas是编写匿名函数的方法,这些函数只能在使用def
创建常规命名函数时更简洁的一次使用。这个可以实现为这样的常规函数:
def intersect(f1, f2):
elems = [(e[1], e[0]) for e in f2]
return set(f1).intersection(elems)
外部代码如下:
dual = Graph([f_edges, intersect])
也就是说,看起来Graph期望作为一个参数列表,其中第一个元素是f_edges
是什么,第二个参数是一个带两个参数的函数。也许你对此的困惑是,仅从这一行开始,intersect
函数和lambda都不会被直接调用。但是,据推测,Graph
将在内部调用它所提供的函数。