Python 內置高階函數詳細
1、Python的內置高階函數
1.1 map()
map()
會根據提供的函數對指定序列做映射
語法格式:
map(function, iterable, ...)
第一個參數function
以參數序列中的每一個元素調用function函數,
第二個參數iterable
一個或多個序列
返回包含每次 function
函數返回值的新列表。
示例代碼:
list1 = [1, 2, 4, 5, 56, 12, 5, 2, 34] # 生成一個函數 def func(lt): # 將偶數返回,奇數+1返回 if lt % 2 == 0: return lt else: return lt + 1 list2 = map(func, list1) # 千萬不能加() # 使用lambda關鍵字 list3 = map(lambda i: i if i % 2 == 0 else i + 1, list1) print(list(list3)) # [2, 2, 4, 6, 56, 12, 6, 2, 34] print(list(list2)) # [2, 2, 4, 6, 56, 12, 6, 2, 34]
1.2 reduce() 函數
reduce()
函數在Python2x
的時候是系統(tǒng)內置的函數,到Python3x
就已經歸入functools
庫里面了
reduce()
函數會對參數序列中元素進行累積。
函數將一個數據集合(鏈表,元組等)中的所有數據進行下列操作:用傳給 reduce
中的函數 function(有兩個參數)先對集合中的第 1、2 個元素進行操作,得到的結果再與第三個數據用 function
函數運算,最后得到一個結果。
語法格式
reduce(function, iterable[, initializer])
function
-- 函數,有兩個參數
iterable
-- 可迭代對象
initializer
-- 可選,初始參數
返回函數計算結果。
示例代碼:
from functools import reduce list1 = [1, 2, 3, 4, 5, 6, 7] value = reduce(lambda x, y: x + y, list1) print(value) # 28 = 1+2+3+4+5+6+7
會將計算結果存儲到x,每次累計。initializer
就是設置x的初始值
1.3 reduce() 函數
filter()
函數用于過濾序列,過濾掉不符合條件的元素,返回一個迭代器對象,如果要轉換為列表,可以使用 list() 來轉換。
該接收兩個參數,第一個為函數,第二個為序列,序列的每個元素作為參數傳遞給函數進行判,然后返回 True 或 False,最后將返回 True
的元素放到新列表中。
語法結構:
filter(function, iterable)
function
-- 判斷函數。
iterable
-- 可迭代對象。
返回一個可迭代對象
1.4 sorted() 函數
sorted()
函數對所有可迭代的對象進行排序操作,返回的是一個新的 list.
語法結構:
sorted(iterable, cmp=None, key=None, reverse=False)
iterable
-- 可迭代對象。
cmp
-- 比較的函數,這個具有兩個參數,參數的值都是從可迭代對象中取出,此函數必須遵守的規(guī)則為,大于則返回1,小于則返回-1,等于則返回0。
key
-- 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自于可迭代對象中,指定可迭代對象中的一個元素來進行排序。
reverse
-- 排序規(guī)則,reverse = True
降序 , reverse = False
升序(默認)。
返回重新排序的列表。
示例代碼:
students = [ {'name': 'tom', 'age': 20}, {'name': 'lucy', 'age': 15}, {'name': 'lily', 'age': 13}, {'name': 'mark', 'age': 21}, {'name': 'jack', 'age': 13}, {'name': 'steven', 'age': 18}, ] # 找出所有年齡大于18歲學生 result = filter(lambda x: x['age'] > 18, students) print(list(result)) # [{'name': 'tom', 'age': 20}, {'name': 'mark', 'age': 21}] # 按照年齡從小到大排序 students = sorted(students, key=lambda x: x['age'], reverse=True) # 利用key print(students) ''' [{'name': 'mark', 'age': 21}, {'name': 'tom', 'age': 20}, {'name': 'steven', 'age': 18}, {'name': 'lucy', 'age': 15}, {'name': 'lily', 'age': 13}, {'name': 'jack', 'age': 13}] '''
到此這篇關于Python 內置高階函數詳細的文章就介紹到這了,更多相關Python 內置高階函數內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決Python plt.savefig 保存圖片時一片空白的問題
今天小編就為大家分享一篇解決Python plt.savefig 保存圖片時一片空白的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01