from functools import reduce import math # é«é¶å½æ° def add(x, y, fun1): return f(x) + fun1(y) # map()彿° è¿åä¸ä¸ªæ°çlist def f(x): return x * x # 差彿° def diff(x, y): return x - y # æ±å def sum_two(x, y): return x + y # 夿奿°å½æ° def is_odd(x): return x % 2 == 1 # å é¤Noneæè 空å符串 # s.strip(rm) å é¤ s å符串ä¸å¼å¤´ãç»å°¾å¤ç rm åºåçå符ã def is_not_empty(s): return s and len(s.strip()) > 0 # æ¯å¦ä¸ºå¹³æ¹æ° def is_sqr(x): r = int(math.sqrt(x)) return r * r == x # è¿å彿°ï¼å»¶è¿è®¡ç® # åè¿ç§å å±å½æ°å¼ç¨äºå¤å±å½æ°çåéï¼åæ°ä¹ç®åéï¼ï¼ç¶åè¿åå å±å½æ°çæ åµï¼ç§°ä¸ºéå ï¼Closureï¼ def calc_sum(lst): def lazy_sum(): return sum(lst) return lazy_sum # 叿䏿¬¡è¿å3ä¸ªå½æ°ï¼åå«è®¡ç®1x1,2x2,3x3: def count(): fs = [] for i in range(1, 4): def fun(j): def g(): return j * j return g r = fun(i) fs.append(r) return fs print(add(4, -5, abs)) # map()彿° map_list = list( map(diff, [1, 2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 1, 5, 8, 0, 1, 9])) print(map_list) # reduce()è¿å¯ä»¥æ¥æ¶ç¬¬3个å¯éåæ°ï¼ä½ä¸ºè®¡ç®çåå§å¼ total = reduce(sum_two, [2, 3, 5, 13, 12], 100) print(total) # filter()彿° result = list(filter(is_odd, [1, 3, 5, 8, 10])) result2 = list(filter(is_not_empty, ['test', None, '', 'str', 'END'])) print(result2) print(result) print(type(filter(is_odd, [1, 3, 5, 8, 10]))) # sumå¯ä»¥è®¡ç®å表ï¼å ç»ï¼åå ¸çvalueå¼ï¼ sum_total = sum({'sss': 12, 'kkk': 13}.values()) print(sum_total) result3 = list(filter(is_sqr, range(1, 101))) print(result3) print(sorted(result3, reverse=True)) # ä¸´æ¶æåº fun2 = calc_sum(result3) print(fun2) print(fun2()) f1, f2, f3 = count() # åå§å print(f1(), f2(), f3()) print(list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8]))) # å¿å彿°