python學習之路03(函數)

來源:互聯網
上載者:User

標籤:列表   過濾   python2   obj   span   返回結果   map   red   通過   

到時再記錄

 

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 + yprint(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(函數)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.