1
我在爲我的作業構建過濾函數。設計濾波器函數的謂詞
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對象不可調用。
這回油管路我已經把:
def lookup_bus_stop_by_road(stops, road):
return filter(get_road_name(bus_stops) == road, stops)
這裏有什麼問題?
好吧,謝謝你了!最初我使用了像lambda x:road == x [1]。你提出的想法阻止了我打破抽象 – soignecf