Python基礎 reduce函式

2022-08-26 16:06:32 字數 1333 閱讀 4652

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# 若有乙個需求用於實現:求和列表中所用元素的乘積

'''1、普通函式

num_list = [3,4,8,16]

#定義乘法操作函式

def multi(x,y):

return x*y

#定義主函式

def reduce_test(func,array):

res = array.pop(0)

for num in array:

res = func(res,num)

return res

print(reduce_test(multi,num_list))

''''''

2、匿名函式

num_list = [3,4,8,16]

def reduce_test(func,array):

res = array.pop(0)

for num in array:

res = func(res,num)

return res

print(reduce_test(lambda x,y:x*y,num_list))

''''''

3、若我們需求改變,還需要傳入使用者指定的初始值

num_list = [3,4,8,16]

def reduce_test(func,array,init = none):

if init is none:

res = array.pop(0)

else:

res = init

for num in array:

res = func(res,num)

return res

print(reduce_test(lambda x,y:x*y,num_list,10))

''''''

4、reduce函式

作用:用於處理列表的所有元素得到乙個返回值

使用之前需要匯入模組

from functools import reduce

用法:reduce(function,sequence,init=none)

第乙個引數為處理函式,第二引數為乙個序列(如列表等),第三個引數為初始值預設為none,返回乙個值

上述需求可以用reduce函式實現如下:

from functools import reduce

num_list = [3,4,8,16]

print(reduce(lambda x,y:x*y,num_list,0.1))

'''

python 的map和reduce(高階函式)

map 函式接受兩個引數,乙個是函式 f 乙個是可迭代物件iterable map將傳入的函式依次作用到序列的每個元素,並把結果作為新的迭代器iterator 返回 例如 def f x return x x r map f,1,2,3,4,5 r 是乙個迭代器 list r 將r變成list 注意...

map函式 filter函式 reduce函式

map函式 map函式的結構為 map 處理方法,可迭代物件 相當於for迴圈遍歷可迭代物件中的每乙個元素,對每乙個元素做指定操作,得到乙個和原始資料順序相同的迭代器。在python3中最終得到的結果是乙個迭代器,可以用list 函式轉化為列表,在python2中map函式的結果就是乙個列表。map...

python學習筆記(二) python基礎函式

python之所以強大好用,離不開可以呼叫的各種庫,同時也和他自身函式相關,下面為學習python函式相關知識後整理知識點。1 python函式引數 python函式定義簡單但靈活度非常大。除正常定義的必選引數外,還可以使用預設引數,可變引數,關鍵字引數。預設引數 def power 5 x 2 在...