from functools import reduce
from fastcore.transform import Pipeline
def lower(string_input):
"""
大写转小写
:param string_input:
:return:
"""
return string_input.lower()
def remove_(string_input):
"""
去除空格
:param string_input:
:return:
"""
return string_input.replace("-", " ")
def strip(string_input):
"""
去除回车字符
:param string_input:
:return:
"""
return string_input.strip("\n")
input_string = "IT-is-a-test\n"
pipe = Pipeline([lower, remove_, strip])
output = pipe(input_string)
print(output)
x = reduce(lambda x, y: y(x), [lower, remove_, strip], input_string)
print(x)
def my_reduce(funcs, init):
r = init
for func in funcs:
r = func(init)
init = r
return r
r = my_reduce([lower, remove_, strip], input_string)
print(r)