1. 程式人生 > >python學習之路03(函數)

python學習之路03(函數)

map() 結果 span enc return turn 導入 通過 func

到時再記錄

3.內置函數-高階函數

1.filter(func,sequence)接收一個函數 f 和一個list,這個函數 f 的作用是對每個元素進行判斷,返回 True或 False,filter()根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新叠代器(在python3中),(在python2中就返回一個list)

li = [a,b,c]


def f(s):  # 定義一個過濾函數
    if s != a:
        return s
    
re = filter(f,li)  # 使用filter函數將列表中的值分別傳入函數中,不符合條件的就過濾,返回是一個叠代器
print(re) for i in re: # 叠代器通過for循環讀取 print(i)
print(list(re))  # 將叠代器強制轉換為list
<filter object at 0x00000000006E03C8> b c

2.map(func,sequence)接收一個函數 f 和一個 list,並通過把函數 f 依次作用在 list 的每個元素上,返回一個新叠代器(在python3中),(在python2中就返回一個list)

li = [a,b,c]


def f(s):  # 定義一個函數
    return s + "
zengwenhai" re = map(f,li) # 使用map函數將列表中的值分別傳入函數中,對列表中的每個值進行處理 print(re) for i in re: # 叠代器通過for循環讀取 print(i)
print(list(re))  # 將叠代器強制轉換為list
<map object at 0x00000000007A0470> azengwenhai bzengwenhai czengwenhai

3.reduce()函數接收的參數和 map()類似,一個函數 f,一個list,但行為和 map()不同,reduce()傳入的函數 f 必須接收兩個參數,reduce()對list的每個元素反復調用函數f,並返回最終結果值



from functools import reduce  # 在python中需要導入

def add(x,y):
    return x + y

print(reduce(add,[1,3,5,7,9]))  # reduce函數將列表中的值分別傳入函數中,處理後放入列表中,再次傳入值
# 先計算頭兩個元素:f(1, 3),結果為4;
# 再把結果和第3個元素計算:f(4, 5),結果為9;
# 再把結果和第4個元素計算:f(9, 7),結果為16;
# 再把結果和第5個元素計算:f(16, 9),結果為25;
# 由於沒有更多的元素了,計算結束,返回結果25。

25

 

python學習之路03(函數)