高階函式 map,reduce

2021-08-14 21:14:29 字數 2664 閱讀 4764

map(func, iterables)

map是內建函式,不需要匯入模組

func表示函式名,該函式必須是得傳入乙個引數,還必須有返回值

iterables表示可迭代物件(即含多個元素,如:列表,元組,字典,集合,字串等)

作用: 對迭代物件中每乙個元素進行func函式,並返回新結果封裝成物件,map返回值的map型別物件,可通過next或for迴圈來獲取元素,也可以強轉成list的模組,進行檢視.

例:def str_to_int(str):

return int(str)

res = map(str_to_int,["1","5","6","3","2"])

print(list(res))

------->[1,5,6,3,2]

for i in res:

print(i,end="")

-------->12345

print(next(res))

--------->1

print(next(res))

--------->1

reduce(func, iterables)

reduce不是內建函式需要匯入模組

func

表示函式名,該函式必須是得傳入2個引數,返回運算後的值

iterables

表示可迭代物件(即含多個元素,如:列表,元組,字典,集合,字串等)

作用:該函式必須接受2個引數,得出結果再與序列下乙個元素進行累計運算

from functools import reduce

def add(a,b):

return a+b

res = reduce(add,list(range(1,101)))

print(res)

---->5050

過濾器filter

filter(func, iterables)

func 表示函式名iterables 表示可迭代物件

func的函式作用在可迭代物件的每乙個元素,進行判斷是否符合要求,true保留,false移除.

def is_odd(number):

if number%2 == 0:

return false

return true

res = filter(is_odd,list(range(1,101)))

print(list(res))

------------->[1,3,5,7,...,99]

排序:sorted

list1 = [23,78,11,-17,88]

小-->大:

sorted(list1)

大-->小:sorted(list1,reverse = true)

絕對值 小--->大:sorted(list1,key = abs)

去重再按原順序排序:

list2 = [689,123,234,34,567,34,123]

print( sorted(list(set(list2)) , key = list2.index))

按照名字長度排序:list3 = ["xixi","xixin","xi","xing","xingxing"]

print(sorted(listname,key=len))

高階函式 map reduce

利用map和reduce編寫乙個str2float函式,把字串 123.456 轉換成浮點數123.456 第一次接觸map和reduce,不太了解此 的實現,參考了網上大神的講解 1.新函式的用法index 表示獲取制定字元在字串中的位置 2.表示次方 from functools import ...

高階函式,map reduce

1.變數可以指向函式 abs 10 是函式呼叫,而abs是函式本身 要獲得函式呼叫結果,我們可以把結果賦值給變數 x abs 10 print x 10如果乙個變數指向了乙個函式,f abs print f 10 10說明變數f現在已經指向了abs函式本身。直接呼叫abs 函式和呼叫變數f 完全相同...

高階函式 map reduce

map 變數獨立執行 舉例說明,比如我們有乙個函式f x x2,要把這個函式作用在乙個陣列 1,2,3,4,5,6,7,8,9 上,就可以用map實現如下 arr.map f x 意思為將arr執行f x 返回結果,但不改變原陣列值 reduce 變數套用執行 這個函式必須接收兩個引數,reduce...