【发布时间】:2016-09-23 12:02:58
【问题描述】:
我有这个内置的过滤功能用于我的家庭作业。
def filter(pred, seq):
if seq == ():
return ()
elif pred(seq[0]):
return (seq[0],) filter(pred, seq[1:])
else:
return filter(pred, seq[1:])
我们应该使用设计的过滤器函数(覆盖更强大的python版本)将一个给定函数转换为只有一个返回行的函数。
我们要转换的代码是这样的:
def lookup_bus_stop_by_road(stops, road):
matched = ()
for bus_stop in stops:
if get_road_name(bus_stop) == road:
matched = matched + (bus_stop, )
return matched
我的问题是:我应该如何通过适应给定的lookup_bus_Stop_by_road 函数来转换过滤器函数的谓词?但我总是得到 TypeError: bool object not callable。
这是我输入的返回线:
def lookup_bus_stop_by_road(stops, road):
return filter(get_road_name(bus_stops) == road, stops)
这里有什么问题?
【问题讨论】:
标签: python recursion filter higher-order-functions