高階函式 map reduce

2021-08-18 12:59:31 字數 613 閱讀 9738

利用mapreduce編寫乙個str2float函式,把字串'123.456'轉換成浮點數123.456

第一次接觸map和reduce,不太了解此**的實現,參考了網上大神的講解

1.新函式的用法index(),表示獲取制定字元在字串中的位置

2.**表示次方

>>> from functools import reduce

>>> def str2float(s):

def multiple(x, y):

return x * 10 + y

id = s.index('.')

l1 = list(map(int, [x for x in s[:id]]))

l2 = list(map(int, [x for x in s[id+1:]]))

return reduce(multiple, l1) + reduce(multiple, l2)/10**len(l2)

>>> print(str2float('123.45'))

輸出:123.45

高階函式 map,reduce

map func,iterables map是內建函式,不需要匯入模組 func表示函式名,該函式必須是得傳入乙個引數,還必須有返回值 iterables表示可迭代物件 即含多個元素,如 列表,元組,字典,集合,字串等 作用 對迭代物件中每乙個元素進行func函式,並返回新結果封裝成物件,map返回...

高階函式,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...