国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

PythonPP+lambda:示例

2019-11-14 17:35:23
字體:
供稿:網(wǎng)友


    直接上代碼。 python PP 下載, 可以到官網(wǎng)下載 Python PP 下載 

 

    lambda 能做的, 基本上普通函數(shù)都可以做到。 lambda 的主要作用是簡化表達(dá)式, 并且似乎尤其適合于表達(dá)科學(xué)計(jì)算公式。 結(jié)合 map, reduce 等函數(shù),可以獲得更強(qiáng)大而“優(yōu)雅”的表達(dá)能力。 這里的“優(yōu)雅”并不一定表示易理解性,而常常是因?yàn)橐痪涠绦【珶挼拇a使得人眼前一亮。   

    以下代碼演示 lambda 的用法及 python 并發(fā)編程。    

 

import ppfrom multiprocessing import PRocess, Pool, Pipedef addNFunc(n):    return lambda x:x+ndef 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 '1'    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()

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东安县| 贞丰县| 冕宁县| 安乡县| 铜陵市| 高要市| 慈溪市| 松桃| 建平县| 莒南县| 九江市| 扶风县| 丹凤县| 武功县| 琼海市| 娄烦县| 隆林| 富蕴县| 米易县| 宾阳县| 呼伦贝尔市| 高邑县| 陆河县| 崇礼县| 禹城市| 义马市| 余姚市| 高平市| 静海县| 龙陵县| 读书| 民县| 建平县| 泸西县| 湘阴县| 新龙县| 福泉市| 嘉义市| 潍坊市| 屯昌县| 寻乌县|