精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

python高階函數詳解

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-02 16:47 ? 次閱讀

python高階函數

1. map 函數

map 函數,它接收兩個參數,第一個參數是一個函數對象(當然也可以是一個lambda表達式),第二個參數是一個序列。

它可以實現怎樣的功能呢,我舉個例子你就明白了。

>>> map(lambda x: x*2, [1,2,3,4,5])
[2, 4, 6, 8, 10]

可以很清楚地看到,它可以將后面序列中的每一個元素做為參數傳入lambda中。

當我們不使用 map 函數時,你也許會這樣子寫。

mylist=[]
for i in [1,2,3,4,5]:
    mylist.append(i*2)

2. filter 函數

filter 函數,和 map 函數相似。同樣也是接收兩個參數,一個lambda 表達式,一個序列。它會遍歷后面序列中每一個元素,并將其做為參數傳入lambda表達式中,當表達式返回 True,則元素會被保留下來,當表達式返回 False ,則元素會被丟棄。

下面這個例子,將過濾出一個列表中小于0的元素。

>>>filter(lambda x: x < 0, range(-5, 5))
[-5, -4, -3, -2, -1]

3. reduce 函數

reduce 函數,也是類似的。它的作用是先對序列中的第 1、2 個元素進行操作,得到的結果再與第三個數據用 lambda 函數運算,將其得到的結果再與第四個元素進行運算,以此類推下去直到后面沒有元素了。

https://file.elecfans.com//web2/M00/33/8C/poYBAGIfLxCAarbfAAB0y7gjBWk239.png

這邊舉個例子你也就明白了。

>>>reduce(lambda x,y: x+y, [1,2,3,4,5])
15

它的運算過程分解一下是這樣的。

1+2=3
3+3=6
6+4=10
10+5=15

4. 注意點

以上幾個函數,熟練的掌握它們的寫法,可以讓我們的代碼看起來更加的 Pythonic ,在某一程度上代碼看起來更加的簡潔。

如果你是新手呢,你需要注意的是,以上示例是在 Python2.x 環境下演示的。而在 Python3.x 中,卻有所不同,你可以自己嘗試一下。

這里總結一下:

第一點,map 和 filter 函數返回的都不再是一個列表,而是一個迭代器對象。這里以map為例

>>> map_obj = map(lambda x: x*2, [1,2,3,4,5])
>>> from collections.abc import Iterator
>>> isinstance(map_obj, Iterator)
True
>>> next(map_obj)
2
>>> list(map_obj)
[4, 6, 8, 10]

第二點,reduce 不可以直接調用,而是要先導入才能使用

from functools import reduce

審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4304

    瀏覽量

    62427
  • python
    +關注

    關注

    56

    文章

    4782

    瀏覽量

    84449
收藏 人收藏

    評論

    相關推薦

    Python常用函數大全

    Python 世界里,有一些寶藏函數和模塊,它們可以讓你編程更輕松、代碼更高效。這篇文章將帶你一一認識這些神器,讓你的開發生活瞬間輕松不少!
    的頭像 發表于 10-27 17:20 ?175次閱讀

    量子計算場景實用秘籍:開物SDK之“高階函數降階”

    現實應用場景往往具有復雜的多變量交互作用和非線性行為,在數學上均屬于高階問題,存在于實際應用中的各個領域,如圖像處理中的去噪和超分辨率、工程設計與優化、金融工程中的期權定價和投資組合優化、醫療領域
    的頭像 發表于 08-29 11:14 ?905次閱讀
    量子計算場景實用秘籍:開物SDK之“<b class='flag-5'>高階</b><b class='flag-5'>函數</b>降階”

    python函數的萬能參數

    我們通過一個簡單的事例來展示一下函數的萬能參數,我們先寫一個最簡單的函數。
    的頭像 發表于 07-17 14:56 ?304次閱讀
    <b class='flag-5'>python</b><b class='flag-5'>函數</b>的萬能參數

    函數發生器的作用,概念要點是什么

    函數生成器是Python中非常強大的特性之一。它們允許我們以一種簡潔且高效的方式生成迭代器,從而幫助我們更好地處理大量數據或者在特定條件下生成無限數據。在本文中,我們將探討函數生成器的作用及其關鍵
    的頭像 發表于 02-23 16:01 ?510次閱讀

    output函數怎么用

    output 函數是一個通用的術語,并不特指某個具體的編程語言或軟件工具。 如果你在使用 Python 編程語言,那么可能是指 print 函數Python 中的 print
    的頭像 發表于 02-23 14:21 ?1173次閱讀

    python中open函數的用法詳解

    python中open函數的用法詳解 Python中的open()函數用于打開文件。它接受文件名和模式作為參數,并返回一個文件對象。文件對象
    的頭像 發表于 01-30 15:31 ?1948次閱讀

    split在python中的用法

    split在python中的用法 split()是Python中一個非常常用的字符串函數,它能夠根據指定的分隔符將一個字符串分割成多個子字符串,并返回一個包含這些子字符串的列表。本文將詳細介紹
    的頭像 發表于 12-25 15:12 ?1967次閱讀

    isnan函數的使用方法

    isnan函數是一種用于檢查特定值是否為“非數字”的函數。在Python中,該函數屬于math模塊,并提供了一種簡單的方法來區分數字和非數字。在本文中,我們將深入探討isnan
    的頭像 發表于 11-30 16:24 ?2958次閱讀

    python如果不符合條件重新輸入怎么辦

    。下面將詳細介紹在 Python 中如何實現這一功能。 首先,我們需要定義一個函數來驗證用戶的輸入是否符合預期的條件。例如,我們可以編寫一個函數來驗證用戶輸入的是否為一個整數。函數的代
    的頭像 發表于 11-29 16:56 ?1940次閱讀

    python中計算排列組合的函數有哪些

    Python中,有多種可以用于計算排列組合的函數和模塊。下面將詳細介紹一些常用的函數和模塊,并提供詳實和細致的說明。 math模塊: Python的math模塊提供了一些計算排列組合
    的頭像 發表于 11-29 16:33 ?3472次閱讀

    python打印出abcd的所有排列組合

    如何使用Python生成"abcd"的所有排列組合,我們首先需要了解排列和組合的概念。排列是一組元素的有序排列,而組合是一組元素的無序選擇。 為了打印出"abcd"的所有排列組合,我們可以使用遞歸函數來實現。遞歸是一種編程技術,它允許
    的頭像 發表于 11-29 16:29 ?1336次閱讀

    python將abc按大小順序輸出不用函數

    將'abc'按照大小順序輸出是一個常見的編程問題。在Python中,有多種方法可以實現這個目標。本文將詳盡、詳實、細致地介紹幾種不使用函數的方法,以幫助您更好地理解問題以及解決方法。 方法一
    的頭像 發表于 11-29 16:25 ?2949次閱讀

    如何讓python運行完后不退出

    Python是一門非常靈活和強大的編程語言,廣泛應用于各種領域。許多Python程序都需要保持在后臺運行,而不是在執行完畢后立即退出。本文將介紹如何實現這一目標。 一、使用input函數
    的頭像 發表于 11-29 15:12 ?8057次閱讀

    python第三方庫有哪些

    Python) NumPy 是 Python 中最重要且最常用的科學計算庫之一。它提供了支持大型、多維數組和矩陣運算的高性能數學函數和計算工具。NumPy 的使用極為廣泛,尤其在數據處理、數值計算
    的頭像 發表于 11-29 14:31 ?2092次閱讀

    不屬于python的內置函數

    Python是一種高級編程語言,它提供了許多內置函數,可以幫助開發人員更輕松地處理各種任務。但是,在Python中并非所有的函數都是內置函數
    的頭像 發表于 11-29 14:27 ?1389次閱讀