Module pywander.functools
Functions
def build_compose_function(*funcs)
-
Expand source code
def build_compose_function(*funcs): """ combine a sequence functions to a compose function """ return reduce(lambda f, g: lambda *args, **kwargs: g(f(*args, **kwargs)), funcs)
combine a sequence functions to a compose function
def build_stream_function(*funcs)
-
Expand source code
def build_stream_function(*funcs): """ combine a sequence funtion to a compose function, and for the sake of simplicity, limited the input parameter to a dict object. """ return reduce(lambda f, g: lambda d: g(f(d)), funcs)
combine a sequence funtion to a compose function, and for the sake of simplicity, limited the input parameter to a dict object.
def default_func(n)
-
Expand source code
def default_func(n): print(n)
def flatten(inlst)
-
Expand source code
def flatten(inlst): """ make multiple layer list or tuple to one dimension list >>> flatten((1,2,(3,4),((5,6)))) [1, 2, 3, 4, 5, 6] >>> flatten([[1,2,3],[[4,5],[6]]]) [1, 2, 3, 4, 5, 6] """ lst = [] for x in inlst: if not isinstance(x, (list, tuple)): lst.append(x) else: lst += flatten(x) return lst
make multiple layer list or tuple to one dimension list
>>> flatten((1,2,(3,4),((5,6)))) [1, 2, 3, 4, 5, 6] >>> flatten([[1,2,3],[[4,5],[6]]]) [1, 2, 3, 4, 5, 6]
def mathematical_induction(n, func=<function default_func>)
-
Expand source code
def mathematical_induction(n, func=default_func): if n==1: return default_func(1) else: return mathematical_induction(n-1)
def sumall(*args)
-
Expand source code
def sumall(*args): """sum all numbers, support multiple layer structure. >>> sumall(1,1,2,3,[1,2,3]) 13 >>> sumall(1,1,2,3,[1,2,3],(4,5,6),[[5,5],[6]]) 44 >>> """ args = flatten(args) return sum(args)
sum all numbers, support multiple layer structure.
>>> sumall(1,1,2,3,[1,2,3]) 13 >>> sumall(1,1,2,3,[1,2,3],(4,5,6),[[5,5],[6]]) 44 >>>