#!/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 在...