У меня есть встроенная функция фильтрации для моей домашней работы.проектирование предиката для функции фильтра
def filter(pred, seq):
if seq ==():
return()
elif pred(seq[0]):
return (seq[0],) filter(pred, seq[1:])
else:
return filter(pred, seq[1:])
Мы должны преобразовать функцию дать тот, который имеет только один обратку, используя разработанную функцию фильтра (который перезаписывает более мощный питона версии).
Код, который мы должны преобразовать это:
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)
, что здесь не так?
Хорошо спасибо так много! Сначала я использовал что-то вроде лямбда x: road == x [1]. Идея, предложенная вами, не позволяет мне нарушить абстракцию – soignecf