目錄
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 ...