(2018-04-08.Python從Zero到One)一荡碾、python高級編程__1.3.5內建函數

上一篇文章為:→1.3.4內建屬性

內建函數

Build-in Function,啟動python解釋器谨读,輸入dir(__builtins__), 可以看到很多python解釋器啟動后默認加載的屬性和函數,這些函數稱之為內建函數坛吁, 這些函數因為在編程時使用較多劳殖,cpython解釋器用c語言實現了這些函數,啟動解釋器 時默認加載拨脉。

這些函數數量眾多闷尿,不宜記憶,開發(fā)時不是都用到的女坑,待用到時再help(function), 查看如何使用填具,或結合百度查詢即可,在這里介紹些常用的內建函數匆骗。

range

    range(stop) -> list of integers
    range(start, stop[, step]) -> list of integers

  • start:計數從start開始劳景。默認是從0開始。例如range(5)等價于range(0碉就, 5);
  • stop:到stop結束盟广,但不包括stop.例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5
  • step:每次跳躍的間距瓮钥,默認為1筋量。例如:range(0烹吵, 5) 等價于 range(0, 5, 1)

python2中range返回列表,python3中range返回一個迭代值桨武。如果想得到列表,可通過list函數

a = range(5)
list(a)

創(chuàng)建列表的另外一種方法


In [21]: testList = [x+2 for x in range(5)]

In [22]: testList
Out[22]: [2, 3, 4, 5, 6]

map函數

map函數會根據提供的函數對指定序列做映射

    map(...)
        map(function, sequence[, sequence, ...]) -> list

  • function:是一個函數
  • sequence:是一個或多個序列,取決于function需要幾個參數
  • 返回值是一個list

參數序列中的每一個元素分別調用function函數肋拔,返回包含每次function函數返回值的list。

#函數需要一個參數
map(lambda x: x*x, [1, 2, 3])
#結果為:[1, 4, 9]

#函數需要兩個參數
map(lambda x, y: x+y, [1, 2, 3], [4, 5, 6])
#結果為:[5, 7, 9]

def f1( x, y ):  
    return (x,y)

l1 = [ 0, 1, 2, 3, 4, 5, 6 ]  
l2 = [ 'Sun', 'M', 'T', 'W', 'T', 'F', 'S' ]
l3 = map( f1, l1, l2 ) 
print(list(l3))
#結果為:[(0, 'Sun'), (1, 'M'), (2, 'T'), (3, 'W'), (4, 'T'), (5, 'F'), (6, 'S')]

filter函數

filter函數會對指定序列執(zhí)行過濾操作

filter(...)
    filter(function or None, sequence) -> list, tuple, or string

    Return those items of sequence for which function(item) is true.  If
    function is None, return the items that are true.  If sequence is a tuple
    or string, return the same type, else return a list.

  • function:接受一個參數呀酸,返回布爾值True或False
  • sequence:序列可以是str凉蜂,tuple,list

filter函數會對序列參數sequence中的每個元素調用function函數性誉,最后返回的結果包含調用結果為True的元素窿吩。

返回值的類型和參數sequence的類型相同

filter(lambda x: x%2, [1, 2, 3, 4])
[1, 3]

filter(None, "she")
'she'

reduce函數

reduce函數,reduce函數會對參數序列中元素進行累積

reduce(...)
    reduce(function, sequence[, initial]) -> value

    Apply a function of two arguments cumulatively to the items of a sequence,
    from left to right, so as to reduce the sequence to a single value.
    For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates
    ((((1+2)+3)+4)+5).  If initial is present, it is placed before the items
    of the sequence in the calculation, and serves as a default when the
    sequence is empty.

  • function:該函數有兩個參數
  • sequence:序列可以是str错览,tuple纫雁,list
  • initial:固定初始值

reduce依次從sequence中取一個元素,和上一次調用function的結果做參數再次調用function倾哺。 第一次調用function時轧邪,如果提供initial參數,會以sequence中的第一個元素和initial 作為參數調用function悼粮,否則會以序列sequence中的前兩個元素做參數調用function闲勺。 注意function函數不能為None曾棕。

reduce(lambda x, y: x+y, [1,2,3,4])
10

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

reduce(lambda x, y: x+y, ['aa', 'bb', 'cc'], 'dd')
'ddaabbcc'

在Python3里,reduce函數已經被從全局名字空間里移除了, 它現在被放置在fucntools模塊里用的話要先引入: from functools import reduce

sorted函數

sorted(...)
    sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

day13_其他知識-01.png

下一篇文章為:→1.3.6集合set
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末扣猫,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子翘地,更是在濱河造成了極大的恐慌申尤,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衙耕,死亡現場離奇詭異昧穿,居然都是意外死亡,警方通過查閱死者的電腦和手機橙喘,發(fā)現死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門时鸵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人厅瞎,你說我怎么就攤上這事饰潜。” “怎么了和簸?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵彭雾,是天一觀的道長。 經常有香客問我锁保,道長薯酝,這世上最難降的妖魔是什么半沽? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮吴菠,結果婚禮上者填,老公的妹妹穿的比我還像新娘。我一直安慰自己橄务,他們只是感情好幔托,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蜂挪,像睡著了一般重挑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上棠涮,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天谬哀,我揣著相機與錄音,去河邊找鬼严肪。 笑死史煎,一個胖子當著我的面吹牛,可吹牛的內容都是我干的驳糯。 我是一名探鬼主播篇梭,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼酝枢!你這毒婦竟也來了恬偷?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤帘睦,失蹤者是張志新(化名)和其女友劉穎袍患,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體竣付,經...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡诡延,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了古胆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肆良。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖逸绎,靈堂內的尸體忽然破棺而出惹恃,到底是詐尸還是另有隱情,我是刑警寧澤桶良,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布座舍,位于F島的核電站,受9級特大地震影響陨帆,放射性物質發(fā)生泄漏曲秉。R本人自食惡果不足惜采蚀,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望承二。 院中可真熱鬧榆鼠,春花似錦、人聲如沸亥鸠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽负蚊。三九已至神妹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間家妆,已是汗流浹背鸵荠。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留伤极,地道東北人蛹找。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像哨坪,于是被迫代替她去往敵國和親庸疾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359