Python 內建高階函式詳細

2022-09-24 18:06:09 字數 2248 閱讀 3845

目錄

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:

returnwww.cppcns.com 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]

reduce()函式在python2x的時候是系統內建的函式,到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的初始值

filter()函式用於過濾序列,過濾掉不符合條件的元素,返回乙個迭代器物件,如果要轉換為列表,可以使用 list() 來轉換。

該接收兩個引數,第乙個為函式,第二個為序列,序列的每個元素作為引數傳遞給函式進行判,然後返回 true 或 false,最後將返回true的元素放到新列表中。

語法結構:

filter(function, iterable)

function-- 判斷函式。

iterable-- 可迭代對www.cppcns.com象。

返回乙個可迭代物件

sorted()函式對所有可迭代的物件進行排序操作,返回的是乙個新的 list.

語法結構:

s程式設計客棧orted(iterable, cmp=none, key=none, reverse=false)

iterable-- 可迭代物件。

cmp-- 比較的函式,這個具有兩個引數,引數的值都是從可迭代物件中取出,此函式必須遵守的規則為,大於則返回1,小於則返回-1,等於則返回0。

key-- 主要是用來進行比較的元素,只有乙個引數,具體的函式的引數就是取自於可迭代物件中,指定可迭代物件中的乙個元素來進行排序。

reverse-- 排序規則,reverse = true降序 ,reverse = false公升序(預設)。

返回重新排序的列表。

示例**:

students = [,,

,,

,,]

# 找出所有年齡大於18歲學生

result = filter(lambda x: x['age'] > 18, students)

print(list(result)) # [, ]

# 按照年齡從小到大排序

students = sorted(students, key=lambda x: x['age'], reverse=true) # 利用key

print(students)

'''[, ,

, ,

, ]'''

python 內建高階函式

1.map abs i for i in 1,3,4,5 1 對於序列每個元素求絕對值 import random from functools import reduce print list map abs,1,3,4,5 2 對於序列每個元素求階乘 5 import random deffac...

python 內建高階函式

1.map map 函式接收兩個引數,乙個是函式,乙個是序列 map將傳入的函式依次作用到序列的每個元素,並且把結果 作為新的序列返回 求絕對值 print map abs,1,3,4,5 輸出 map列印的不是乙個列表而是乙個物件,所以我們需要轉換為列表才能列印。print list map ab...

Python 內建高階函式

map是python 內建的高階函式,其可以傳入倆個引數,第乙個引數是函式,第二個引數是乙個iterable例如list。def aa a return a a r map aa,1,2,3,4 map的返回值是乙個iterator需要使用list 或者for 輸出所有元素。print a for ...