PythonPP+lambda:示例
直接上代码。 python PP 下载, 可以到官网下载 Python PP 下载
lambda 能做的, 基本上普通函数都可以做到。 lambda 的主要作用是简化表达式, 并且似乎尤其适合于表达科学计算公式。 结合 map, reduce 等函数,可以获得更强大而“优雅”的表达能力。 这里的“优雅”并不一定表示易理解性,而常常是因为一句短小精炼的代码使得人眼前一亮。
以下代码演示 lambda 的用法及 python 并发编程。
import pp
from multiprocessing import Process, Pool, Pipe def addNFunc(n):
return lambda x:x+n def fac(n):
if n <= 1:
return 1
return reduce(lambda x,y: x*y, map(addNFunc(1), range(n))) def computingFacOfRange(begin, end):
for i in map(addNFunc(begin), range(end-begin+1)):
print i, '! =', fac(i) def another():
print 'another quick job' def QuadraticSum(n, m):
''' compute 1^m + 2^m + ... + n^m '''
if n <= 1:
return 1
return reduce(lambda x,y: x+y**m, map(addNFunc(1), range(n))) def expressQS(n,m):
if n <= 1:
return ''
return reduce(lambda x,y: "%s+%s" %(str(x),str(y)+'^'+str(m)), map(addNFunc(1), range(n))) def obtainQuadraticSum(n, m):
return "%s=%s" % (expressQS(n, m), QuadraticSum(n,m)) def obtainQuadraticSumByPipe(conn, n, m):
conn.send(obtainQuadraticSum(n, m)) def printQuadraticSum(n, m):
print obtainQuadraticSum(n, m) def testQuadraticSum():
for n in [1,2,3,4,5]:
for m in [-1,1,2,3]:
printQuadraticSum(n, m) def usingPP():
''' using pp module for python concurrent programming '''
nworkers = 10
ppservers = ()
job_server = pp.Server(nworkers, ppservers=ppservers) print "Starting pp with", job_server.get_ncpus(), "workers" jobs = []
for i in range(nworkers):
jobs.append(job_server.submit(computingFacOfRange, (i*10+1, (i+1)*10), (fac,addNFunc,))) jobs.append(job_server.submit(another, ())) for job in jobs:
job() job_server.print_stats() def usingMultiprocess():
''' using multiprocessing module for python concurrent programming '''
num = 100
processes = [] print '************ using original process ***********'
input_conn, output_conn = Pipe()
for m in [-1,1,2,3]:
p = Process(target=obtainQuadraticSumByPipe, args=(input_conn, num,m,))
p.start()
print output_conn.recv() print '------------- using Pool -------------'
pool = Pool(processes=4)
for m in [-1,1,2,3]:
pool.apply(printQuadraticSum, (num,m)) if __name__ == '__main__':
testQuadraticSum()
usingPP()
usingMultiprocess()
PythonPP+lambda:示例的更多相关文章
- 掌握 Java 8 Lambda 表达式
Lambda 表达式 是 Java8 中最重要的功能之一.使用 Lambda 表达式 可以替代只有一个函数的接口实现,告别匿名内部类,代码看起来更简洁易懂.Lambda 表达式 同时还提升了对 集合 ...
- java8学习笔记之lambda表达式
1.lambda表达式特点 lambda表达式可以理解为可传递的匿名函数的一种方式,无名称,但有参数列表和函数体以及返回类型,可能还有一个可抛出异常的列表. 2.lambda表达式基本语法 (para ...
- Java 终于有 Lambda 表达式啦~Java 8 语言变化——Lambda 表达式和接口类更改【转载】
原文地址 en cn 下载 Demo Java™ 8 包含一些重要的新的语言功能,为您提供了构建程序的更简单方式.Lambda 表达式 为内联代码块定义一种新语法,其灵活性与匿名内部类一样,但样板文件 ...
- 【C#】委托中的匿名函数与lambda
将方法作为方法的参数 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使 ...
- Java8的Lambda表达式简介
先阐述一下JSR(Java Specification Requests)规范,即Java语言的规范提案.是向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求 ...
- Java8之熟透Lambda表达式
一.Lambda简述 1.1.Lambda概述 Lambda 表达式可以理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表.函数主体.返回类型,可能还有一个可以抛出的异常列表. ...
- Java 8 Lambda表达式学习和理解
Java 8 Lambda表达式和理解 说明:部分资料来源于网络 时间:20190704 Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性.Lambda 允许把函数作为一 ...
- Java 基础篇之lambda
Lambda 示例 public interface Eatable { void taste(); } public interface Flyable { void fly(String weat ...
- java8学习之Lambda表达式继续探讨&Function接口详解
对于上次[http://www.cnblogs.com/webor2006/p/8186039.html]已经初步引入的Java8中Stream流的概念,其中使用了map的操作,它需要接受一个Func ...
随机推荐
- 1063. Set Similarity (25)
1063. Set Similarity (25) 时间限制 300 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Given ...
- [LintCode] LRU Cache 缓存器
Design and implement a data structure for Least Recently Used (LRU) cache. It should support the fol ...
- hive中导入json格式的数据(hive分区表)
hive中建立外部分区表,外部数据格式是json的如何导入呢? json格式的数据表不必含有分区字段,只需要在hdfs目录结构中体现出分区就可以了 This is all according to t ...
- 段落的展开收起(substring的应用)
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- js 页码分页的前端写法
<script type="text/javascript"> var curPage = 1;//当前页码 var total;//总页数 $(function () ...
- jQuery ui autocomplete下拉列表样式失效解决,三种获取数据源方式,
jQuery有很多很多的已经实现,很漂亮的插件,autocomplete就是其中之一.jQuery ui autocomplete主要支持字符串Array.JSON两种数据格式,jQuery ui b ...
- html - 自动播放音乐
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- PowerDesigner V16.5 安装文件 及 破解文件
之前在网上找个假的,只能看,不能创建自己的DB; 或者 不能破解的,比较伤脑筋. 偶在这里提供一个 可长期使用的版本. PowerDesigner165_破解文件.rar 链接:http://p ...
- coolpro2 剪切并淡出
1.先将音乐暂停或者停止. 2.选择需要淡出的一段音乐 3.选择效果--波形振幅--渐变 4.选择Fade-out,确定
- C遇到的问题
1. stdout-------printf输出到stdout,并在终端打印 stderr--------perror错误输出到stderr,并在终端打印 2. usleep(1)//代表一微妙 sl ...