Python學習筆記7:函數對象及函數對象作參數

一、lambda函數
比如:
fun1 = lambda x,y: x + y
print fun1(3,4)
輸出:7

lambda生成一個函數對象。該函數參數為x,y,返回值為x+y。函數對象賦給func。
func的調用與正常函數無異。

上面的代碼等價于:
def fun2(x, y):return x + y

二、函數作為參數
函數能夠作為一個對象。進行參數傳遞。
比如:
fun = lambda x ,y : x+y
def runFun(fun, a, b):print fun(a,b)
runFun(fun, 3, 5)
輸出:8

又如:
runFun((lambda x,y: x**2 + y), 6, 9)

三、map()函數
map()是Python的內置函數。它的第一個參數是一個函數對象。


map()的功能是將函數對象依次作用于表的每個元素。并將結果返回。


如:

ret1 = map((lambda x:x+1),[1,2,3])
print ret1ret2 = map((lambda x,y:x+y),[1,2,3],[10,100,1000])
print ret2
輸出:
[2, 3, 4]
[11, 102, 1003]

三、filter()函數
filter函數的第一個參數也是一個函數對象。它也是將作為參數的函數對象作用于多個元素。
假設函數對象返回的是True,則該次的元素被儲存于返回的表中。filter通過讀入的函數來篩選數據。
如:
def fun3(a):if a > 100:return Trueelse:return Falseprint filter(fun3, [10,20,100,110])
輸出:[110]


四、reduce()函數
reduce函數的第一個參數也是函數,但有一個要求,就是這個函數自身能接收兩個參數。


比如:

print reduce((lambda x,y:x+y),[1,2,3,4,5])
輸出:15

reduce將表中的前兩個元素(1和2)傳遞給lambda函數,得到3。


該返回值(3)將作為lambda函數的第一個參數,而表中的下一個元素(3)作為lambda函數的第二個參數,進行下一次的對lambda函數的調用,得到6。


依次調用lambda函數。每次lambda函數的第一個參數是上一次運算結果,而第二個參數為表中的下一個元素,直到表中沒有剩余元素。


上面樣例。相當于(((1+2)+3)+4)+5


注意:在3.x版本號中map,filter,reduce這三個函數都稍有不同

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396113.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396113.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396113.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

github 建立_建立在線社區:GitHub教師

github 建立by Gitter通過吉特 建立在線社區:GitHub教師 (Building Online Communities: GitHub Teacher) We talked to the GitHub Training team about the free GitHub courses they offer to both developers and non-developers, as well as about the commun…

廣數25i系統倒刀回刀m代碼_廣州數控系統GSK25i參數.pdf

GSK25i 銑床加工中心數控系統 使用手冊(第 3 分冊: 參數篇)在本使用手冊中,我們將盡力敘述各種與該系統操作相關的事項。限于篇幅限制及產品具體使用等原因,不可能對系統中所有不必做和/或不能做的操作進行詳細的敘述。因此,本使用手冊中沒有…

linux離線安裝rjava,無法在ubuntu系統上安裝rJava

我已經看過一些與此相關的帖子…但是所有建議的解決方案看起來似乎不工作….我在EC2實例中運行R,并運行以下命令來嘗試安裝rJava但無效…任何幫助將不勝感激。> install.packages("rJava")Installing package(s) into ‘/home/ubuntu/R/library’(as ‘…

HBase基礎知識(三):HBase架構進階、讀寫流程、MemStoreFlush、StoreFile Compaction、Region Split

1. 架構原理 1)StoreFile 保存實際數據的物理文件,StoreFile以HFile的形式存儲在HDFS上。每個Store會有一個或多個StoreFile(HFile),數據在每個StoreFile中都是有序的。 2)MemStore 寫緩存,由于…

CentOS6.7-64bit編譯hadoop2.6.4

1.下載maven(apache-maven-3.3.3-bin.tar.gz) http://archive.apache.org/dist/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz 2.安裝maven tar -zxvf apache-maven-3.3.3-bin.tar.gz -C /usr/local 3.添加環境變量 vim /etc/profileexpo…

第一章節測試

大家在做第一章測試題時,需要復習如下相關知識點:編譯型VS解釋型、變量名規范、數據類型、程序交互、格式化輸出、運算符、流程控制。1.簡述編譯型與解釋型語言的區別,且分別列出你知道的那些語言屬于編譯型,哪些屬于解釋型。2.執…

VS2015升級Update2之后Cordova程序提示:此應用程序無法在此電腦上運行

VS2015在升級到Update2之后,有可能出現如下異常,在運行Cordova項目時提示: 查看輸出面板會有亂碼錯誤信息: 出現此問題的原因是在于npm程序損壞了。vs調用的npm程序并不是在node安裝目錄下的npm,而是在: C:…

gitter 卸載_最佳Gitter渠道:學習編碼

gitter 卸載by Gitter通過吉特 最佳Gitter渠道:學習編碼 (Best Gitter channels for: Learning to Code) If you’re learning to code in 2016, you’re in luck — thanks to a huge range of helpful websites, MOOCs, books, and learners’ communities, you’…

雙鑒探測器是哪兩種探測方式結合_老師傅帶你看懂火災探測器的種類和基本原理,看完漲知識了...

為什么極早期的火災探測十分關鍵?火災的產生我們生活的環境中充滿著大量的可燃物質,空氣中的氧氣含量通常也足夠滿足燃燒條件。但是還有另外一個形成火災的條件就是:點火能量必須可以驅使氧化的過程開始。點火能量源可以是多種多樣的&#xf…

JS入門熟知

JS是面向對象的語言 封裝繼承多態聚集(對象中具有引用其他對象的能力)JS使用中絕大多數情況不需要進行面向對象的設計,很多情況是使用已經設計好,準備好的對象,基于對象的語言. JS的使用(引入) jsp、html中直接在script標簽中書寫…

c語言專業實習報告,C語言個人實習報告(范文1)

《C語言個人實習報告.doc》由會員分享,可免費在線閱讀全文,更多與《C語言個人實習報告》相關文檔資源請在幫幫文庫(www.woc88.com)數億文檔庫存里搜索。1、好的學習興趣,獨立的編程風格。(組C語言實訓報告課題名稱:通訊錄管理系統…

分析不同類型頁面渲染過程

現在讓我們看看瀏覽器從網絡上加載資源所耗費的時間(我們忽略從緩存以及從CDN等中間商網絡上加載資源),我們首先要知道的是: 一個到無服務的網路往返 (傳播延遲) 大約100ms服務器對于HTML文檔的響應大約100ms,對于其他…

引入 javascript_在您JavaScript項目中引入類型安全性? 再想一想

引入 javascriptby James Wright詹姆斯賴特(James Wright) 在您JavaScript項目中引入類型安全性? 再想一想 (Introducing Type Safety To Your JavaScript Project? Think Again) 更新— 2017年2月1日 (Update — 1st February 2017) I’ve heard various counter…

劣幣驅逐良幣通俗解釋_如何通俗理解劣幣驅逐良幣的問題,同時如何扭轉這個現象?...

以牛奶為例談劣幣驅逐良幣。【原來】大家都賣的純正的純牛奶,因為。牛奶的來源和生產工藝基本上都差不多,所以說產品的品質也沒有什么大的差異。【后來】奶制品企業為了爭奪市場開始打價格戰,你賣5塊我就賣4塊,你賣4塊我就賣3塊5&…

c語言里 如何取得線程的lpparameter'參數,請問線程函數如何訪問對話框類中的變量...

我線程函數定義在對話框類的實現文件中需要訪問對話框類頭文件中聲明的變量怎么才可以?i_noname(晚九朝五) 于 2005-9-15 16:14:25DWORD WINAPI Proc(LPVOID lpParameter ){CDialog *pDlg (CDialog *)lpParameter;...}啟用線程時把對話框指針傳進去AfxBeginThread(…

Android內存優化——內存泄露檢測分析方法

上一篇文章總結了一些常見的內存泄露場景及優化方案,這篇文章繼續總結內存泄露的一些常用的檢測和分析方法。 Lint代碼檢查 AndroidStudio自動Lint代碼檢查工具,一些常見的代碼警告Lint工具都會給我們提示。使用也比較簡單: Analyze —> I…

ImageLoader加載圖片

先導universal-image-loader-1.9.3包 在application配置 android:name".MyApplication" intent權限 1 package com.ch.day13_imageloaderdemo;2 3 import java.io.File;4 5 import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache; 6 impor…

hackintosh黑蘋果_為什么您的下一個Mac應該是Hackintosh?

hackintosh黑蘋果by Sebastian Dobrincu塞巴斯蒂安多布林庫(Sebastian Dobrincu) 為什么您的下一個Mac應該是Hackintosh? (Why Your Next Mac Should Be a Hackintosh ?) I just finished a 48-hour Hackintosh building marathon. It was a fun experience and I…

一張圖解釋什么是遺傳算法_遺傳算法簡介及代碼詳解

(allele)數據值,屬性,值基因座(locus)位置,iterator位置表現型(phenotype)參數集,解碼結構,候選解染色體:又可以叫做基因型個體(individuals)群體/種群(population):一定數量的個體組成&#xf…

c語言程序設計學生程序查詢,《c語言程序設計報告-學生信息管理系統》.doc

《c語言程序設計報告-學生信息管理系統》中南大學??C語言程序設計實踐報告?????題 目 學生信息管理系統學生姓名 張眼指導教師 劉偉榮學 院 信息科學與工程學院專業班級 電氣信息1113班完成時間 2012年6月28日星期四?1.設計任務及設計目標學生信息管理系統是基于系統主…