1.首先有一个0-100的列表[0, 1, 2, 3.....100]
选出斐波那契数列形成一个[0,1,1,2,3,5,8,13,21,34,55,89]
选出其中的三的配数.【3,21】
最后相加24
# 生成0-100的列表
def get_lst1(): lst1 = [] for i in range(1, 101): lst1.append(i) # print(lst1) return lst1
# 斐波那契递归函数 def fib_recur(n): if n in (1, 2): return n return fib_recur(n - 2) + fib_recur(n - 1)
# 获取1-100内得斐波那契数列 def get_fib_lst2(): # 收集斐波那契数列列表 lst2 = [] i = 1 while True: rst = fib_recur(i) # 如果返回得结果大于100则终止循环 if rst > 100: break lst2.append(rst) i += 1 return lst2
# 过滤函数 选出斐波那契数列 def func1(x): lst2 = get_fib_lst2() # print("lst2:", lst2) if x in lst2: return x # 过滤函数 选出斐波那契数列中3的倍数 def func2(y): if y % 3 == 0: return y # 相加 def func3(a, b): return a + b if __name__ == '__main__': lst1 = get_lst1() print("lst1:", lst1) # 从lst1中获取斐波那契列表 lst3 = list(filter(func1, lst1)) print("lst3:", lst3) lst4 = list(filter(func2, lst3)) print("lst4:", lst4) # 相加函数得到最后的结果 result = functools.reduce(func3, lst4) print("相加结果", result)