SICP_Python版本第二章:序列作为约定界面
来源:互联网 发布:珍珠丁子裤淘宝买家秀 编辑:程序博客网 时间:2024/06/05 01:56
利用reduce,map,filter,[expressionforinsiftest(s)]可以进行模块化的设计,大大减少了编程的负担
比如下面,一行代码就写出fib数列的前n项,然后再过滤求和。
def sum_even_fibs(n): s = reduce(lambda x,y:x+[x[-1]+x[-2]],[[1,1]]+[0]*(n-2)) return sum([x for x in s if not x%2])
习题2.34 计算多项式
def horner_eval(x,cofficients): return reduce(lambda y,c:y*x+c,cofficients[::-1])
习题2.36 构造一个accumulate_n过程,用来处理序列的序列 。
def accumulate_n(f,init,sequence): return [reduce(f,[subs[i] for subs in sequence]) for i in range(len(sequence[0]))]
习题2.37 :几种矩阵运算的实现。
def dot_product(v,w): return sum([v[i]*w[i] for i in range(len(v))])def maxtrix_vector(m,v): return [reduce(lambda x,y:x+y,[m[i][j]*v[j] for j in range(len(v))]) for i in range(len(m))]def maxtrix_matrix(m,n): r = transponse(n) return [maxtrix_vector(r,m[i]) for i in range(len(m))]def transponse(m): return [[m[i][j] for i in range(len(m))] for j in range(len(m[0]))]m = [[1,2,3,4],[4,5,6,6],[6,7,8,9]]v = [[1],[2],[3],[4]]print(maxtrix_matrix(m,v))#print(transponse(m))
习题2.38 :应该满足的条件是f(x,y)=f(y,x)
0 0
- SICP_Python版本第二章:序列作为约定界面
- SICP_Python版第二章
- SICP_Python版第二章(1)
- SICP_Python版第二章:集合的表示
- SICP_Python版本:Hufuman编码
- SICP_Python版第二章:符号数据(简易求导系统)
- SICP_Python版第2章:递归的定义序列
- SICP_Python第二章:映射(子集问题,排列问题,N皇后问题)
- Maven版本约定
- SICP_Python版第三章:递归与迭代
- 第二章 数据契约版本
- cookbook第二章:getall界面和cookview界面
- UI第二章常用界面软件
- Unity学习第二章 Unity界面了解
- Essential Qt 第二章 界面布局
- python学习第二章(序列)
- [python笔记][第二章Python序列-list]
- 约定
- Android弹幕功能实现,模仿斗鱼直播的弹幕效果
- 线程:Runnable接口
- 手写横向组织机构图
- Java运算符与基本选择结构
- Android xml解析
- SICP_Python版本第二章:序列作为约定界面
- JZOJ 4637 大鱼海棠【NOIP2016提高组A组7.16】
- iOS多线程加锁
- CODEFORCES 25E Test
- 搜索框代码
- Java简介
- 面试题-----(StringBuffer)
- 机器学习
- 数据库调优