如何使用lambda示例阅读此python的这一部分?

时间:2018-01-16 22:41:24

标签: python lambda

你知道怎么读这个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

图表功能的Sage文档在这里:

http://doc.sagemath.org/html/en/reference/graphs/sage/graphs/graph.html#graph-format

1 个答案:

答案 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将在内部调用它所提供的函数。