我正在为一个不规则网格上的区域生长写入一个函数:如果满足了某些要求,则从一个种子库中开始,找到相邻的库并将它们包含在返回的库索引集中。我想对于的要求是任意的,例如,“> 2”,“> = 2”,“== 2”,等。因此,语法是:将条件表达式作为函数参数传递
myregion = get_region(bin_coordinates, bin_values, seed_bin, '> 2')
和邻近的区域中将返回其值大于2的垃圾箱。
基本上我正在寻找相同的功能在大熊猫图书馆,查询HDF存储时,以下是可能的:
store.select('dfq',where="A>0 or C>0")
我当然可以写某种解析器使用的if/else语句将'> 2'翻译成代码,但我想知道是否有更优雅的方式?
传中的λ(匿名函数),例如lambda x:x> 2。声明getregion为例如getregion(坐标,值,testfun),并通过例如调用它。 getregion(thesecoords,thesevalues,lambda x:x> 2),然后在getregion中使用例如。如果testfun(值)。然而,选择一个比testfun更好的名字来描述True的结果。 – barny