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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python5個內(nèi)建高階函數(shù)的使用

數(shù)據(jù)分析與開發(fā) ? 來源:數(shù)據(jù)分析與開發(fā) ? 作者:數(shù)據(jù)分析與開發(fā) ? 2021-02-04 16:06 ? 次閱讀

本文結(jié)合各種實際的例子詳細(xì)講解了Python5個內(nèi)建高階函數(shù)的使用,能夠幫助理解Python的數(shù)據(jù)結(jié)構(gòu)和提高數(shù)據(jù)處理的效率,這5個函數(shù)分別是:

map

reduce

filter

sorted/sort

zip

79c32d28-584b-11eb-8b86-12bb97331649.jpg

一、map

1.1 語法

map函數(shù)的基本語法是map(func, seq),其含義指的是:對后面可迭代序列中的每個元素執(zhí)行前面的函數(shù)func的功能,最終獲取到一個新的序列。注意:

Python2中直接返回的是一個列表

Python3中返回的是一個可迭代器,如果想返回列表,可以使用list()進(jìn)行處理

help(map) # 查看幫助信息

79e44224-584b-11eb-8b86-12bb97331649.jpg

1.2 demo

通過舉例說明map函數(shù)的使用方法

使用Python內(nèi)置函數(shù)

7a3b4a6a-584b-11eb-8b86-12bb97331649.jpg

使用自定義函數(shù)

7a5a8f6a-584b-11eb-8b86-12bb97331649.jpg

使用匿名函數(shù)lambda

使用匿名函數(shù)的時候可以有多個參數(shù)

7a7a2c8a-584b-11eb-8b86-12bb97331649.jpg

二、reduce

2.1 語法

reduce函數(shù)的定義:

reduce(function, sequence [, initial] ) -> value

reduce依次從sequence中取一個元素,和上一次調(diào)用function的結(jié)果做參數(shù),再次調(diào)用function。

第一次調(diào)用function時,如果提供initial參數(shù),會以sequence中的第一個元素和initial作為參數(shù)調(diào)用function,否則會以序列sequence的第一個數(shù)

2.2 使用

Python3中已將reduce函數(shù)移到functools模塊中,需要先進(jìn)行導(dǎo)入:

from functools import reduce # 導(dǎo)入help(reduce) # 查看幫助文檔

7aa32eaa-584b-11eb-8b86-12bb97331649.jpg

上面的例子我們通過一個圖形來解釋說明:

7ad0b0f0-584b-11eb-8b86-12bb97331649.jpg

2.3 demo

使用自定義函數(shù)

7af4c774-584b-11eb-8b86-12bb97331649.jpg

使用匿名函數(shù)lambda

7b1a6bdc-584b-11eb-8b86-12bb97331649.jpg

image-20201024185550970

一個復(fù)雜的例子

7b385462-584b-11eb-8b86-12bb97331649.jpg

具體過程為:

1.1*2+1=3 2.3*3+1=10# 第一個3為上面的結(jié)果3,第2個原始數(shù)據(jù)中的3 3.10*4+1=41

帶有初始值的例子

初始化值和序列中的第一個值執(zhí)行func函數(shù),將得到的結(jié)果作為下次的起始值

7b76dfb6-584b-11eb-8b86-12bb97331649.jpg

# 具體過程解釋為 1.6+1=7 2.7+2=9 3.9+3=12 4.12+4=16 5.16+5=21

三、filter

3.1 語法

filter()函數(shù)用于過濾序列,過濾掉不符合條件的那些元素,返回符合條件的元素組成新列表。

序列中的每個元素作為參數(shù)傳遞給函數(shù)進(jìn)行判斷,返回True或者False,最后將返回True的元素放到新列表中。

filter()語法如下:

filter(function, iterable) # 前者為函數(shù),后者為待執(zhí)行的序列

3.2 demo

help(filter) # 幫助文檔

7b96e5f4-584b-11eb-8b86-12bb97331649.jpg

使用自定義函數(shù)

返回10以內(nèi)的偶數(shù)

7bb871f6-584b-11eb-8b86-12bb97331649.jpg

使用匿名函數(shù)lambda

7c04fdfa-584b-11eb-8b86-12bb97331649.jpg

對字符串的篩選

選擇符合指定要求的字符串

7c376dda-584b-11eb-8b86-12bb97331649.jpg

四、sorted

4.1 語法

sorted(iterable, key=None, reverse=False)

4.2 3個參數(shù)

sorted()接受3個參數(shù),返回的是一個排序后的列表

可迭代對象iterable

reverse=False,接受一個布爾值,選擇是否反轉(zhuǎn)排序結(jié)果,默認(rèn)是False

接受一個回調(diào)函數(shù)key=None,回調(diào)函數(shù)只能有一個參數(shù),根據(jù)函數(shù)的返回值進(jìn)行排序

4.3 demo

help(sorted) # 幫助文檔

7c74abaa-584b-11eb-8b86-12bb97331649.jpg

默認(rèn)不反轉(zhuǎn)

7c9681b2-584b-11eb-8b86-12bb97331649.jpg

對元組、range對象、字典的排序

7cc9331e-584b-11eb-8b86-12bb97331649.jpg

4.4 結(jié)果反轉(zhuǎn)

結(jié)果反轉(zhuǎn)的意義就是將結(jié)果降序排列,因為原本默認(rèn)是升序的,使用的是reverse=True

7cf8dbaa-584b-11eb-8b86-12bb97331649.jpg

4.5 理解key

key參數(shù)的作用是我們自定義一個函數(shù),然后通過將序列中的元素作用于函數(shù)之后再進(jìn)行排序

在這里我們使用絕對值函數(shù)

7d16a89c-584b-11eb-8b86-12bb97331649.jpg

7d350fda-584b-11eb-8b86-12bb97331649.jpg

4.6 對比sort()

sort()方法只能對原列表list進(jìn)行排序,參數(shù)和sorted是相同的

結(jié)果是將原來的列表直接原地修改,而sorted 是生成新的列表,二者是不同的

7d634652-584b-11eb-8b86-12bb97331649.jpg

五、zip

zip()是Python中一個非常重要的方法,能夠快速的實現(xiàn)很多功能。

5.1 語法

zip([iterable,...]) # iterable是一個或者多個可迭代器

函數(shù)執(zhí)行的結(jié)果在Python3中返回的是一個zip對象,如果需要展示成列表的形式,直接使用list方法展開;展開的結(jié)果是列表中嵌套元組的形式

在Python2中直接返回的是元組列表形式

help(zip) # 查看文檔

7d8a8abe-584b-11eb-8b86-12bb97331649.jpg

5.2 zip接受一個序列

zip中可以接受列表、元組、字符串等形式

7dbbdefc-584b-11eb-8b86-12bb97331649.jpg

zip接受空列表的形式,返回的仍空列表

7dee4eaa-584b-11eb-8b86-12bb97331649.jpg

5.3 zip接受多個序列

7e24430c-584b-11eb-8b86-12bb97331649.jpg

同時對不同類型的序列進(jìn)行合并

7e547838-584b-11eb-8b86-12bb97331649.jpg

5.4 處理長度不同

當(dāng)多個序列同時存在,取長度最小的那個序列的長度

7eac1d40-584b-11eb-8b86-12bb97331649.jpg

5.5 zip(*iterables)

我們一般認(rèn)為該方法是zip的反過程,是一個unzip的過程,舉例說明其使用:

7edc2e18-584b-11eb-8b86-12bb97331649.jpg

5.6 復(fù)雜例子

下面看一個更為復(fù)雜的例子

7f11c910-584b-11eb-8b86-12bb97331649.jpg

這個例子的解釋為:

[x]是一個列表中含有列表,x本身就是一個列表

[x]*3結(jié)果為[x,x,x],實際上也是[[4,5,6],[4,5,6],[4,5,6]]

[*[x]*3]的結(jié)果則為[(4,4,4),(5,5,5),(6,6,6)]

5.7 zip運用

下面通過zip的實際例子來說明它的應(yīng)用:

列表求和

7f3d2380-584b-11eb-8b86-12bb97331649.jpg

數(shù)據(jù)合并

7fa167f0-584b-11eb-8b86-12bb97331649.jpg

字典的key-value轉(zhuǎn)換

for循環(huán)實現(xiàn):

7fbce2b4-584b-11eb-8b86-12bb97331649.jpg

使用zip實現(xiàn):

7fecd6b8-584b-11eb-8b86-12bb97331649.jpg

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4307

    瀏覽量

    62433
  • 數(shù)據(jù)處理
    +關(guān)注

    關(guān)注

    0

    文章

    581

    瀏覽量

    28530
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4782

    瀏覽量

    84460

原文標(biāo)題:Python 高階函數(shù)使用總結(jié)

文章出處:【微信號:DBDevs,微信公眾號:數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Python常用函數(shù)大全

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

    【每天學(xué)點AI】一例子帶你了解Python裝飾器到底在干嘛!

    進(jìn)行“加料”呢?Python裝飾器提供了一更為優(yōu)雅的方式來增強現(xiàn)有函數(shù)的行為,并且不需要修改現(xiàn)有的函數(shù)代碼及調(diào)用方式。接下來通過一案例來
    的頭像 發(fā)表于 09-20 16:54 ?525次閱讀
    【每天學(xué)點AI】一<b class='flag-5'>個</b>例子帶你了解<b class='flag-5'>Python</b>裝飾器到底在干嘛!

    python函數(shù)的萬能參數(shù)

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

    output函數(shù)怎么用

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

    python中open函數(shù)的用法詳解

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

    加速Python for循環(huán)的12種方法

    Python內(nèi)建的一常用功能是timeit模塊。下面幾節(jié)中我們將使用它來度量循環(huán)的當(dāng)前性能和改進(jìn)后的性能。
    的頭像 發(fā)表于 01-04 17:33 ?1880次閱讀
    加速<b class='flag-5'>Python</b> for循環(huán)的12種方法

    函數(shù)指針和指針函數(shù)是不是一東西?

    函數(shù)指針的本質(zhì)是指針,就跟整型指針、字符指針一樣,函數(shù)指針指向的是一函數(shù)
    的頭像 發(fā)表于 01-03 16:35 ?502次閱讀
    <b class='flag-5'>函數(shù)</b>指針和指針<b class='flag-5'>函數(shù)</b>是不是一<b class='flag-5'>個</b>東西?

    split在python中的用法

    split在python中的用法 split()是Python中一非常常用的字符串函數(shù),它能夠根據(jù)指定的分隔符將一字符串分割成多個子字符
    的頭像 發(fā)表于 12-25 15:12 ?1969次閱讀

    if函數(shù)條件怎么填

    IF函數(shù)是Excel中最常用的函數(shù)之一,它根據(jù)一邏輯條件的返回結(jié)果來決定應(yīng)該執(zhí)行哪一動作。在Excel中使用IF函數(shù)可以實現(xiàn)復(fù)雜的邏輯判
    的頭像 發(fā)表于 12-03 10:28 ?3449次閱讀

    sumif函數(shù)條件怎么填

    SUMIF函數(shù)是一種非常常用的Excel函數(shù),它用于根據(jù)給定的條件,在相應(yīng)的區(qū)域內(nèi)求和。SUMIF函數(shù)可以通過設(shè)置一條件、區(qū)域和要求和的范圍,從而對滿足條件的數(shù)值進(jìn)行求和。而如果需要
    的頭像 發(fā)表于 11-30 16:38 ?5259次閱讀

    python如何修改列表中的每一值數(shù)據(jù)

    Python中,我們可以使用不同的方法來修改列表中的每一值數(shù)據(jù)。 方法一:使用for循環(huán)遍歷列表并修改元素值 首先,我們可以使用for循環(huán)遍歷列表中的每一元素,并使用索引來修改對應(yīng)位置的值
    的頭像 發(fā)表于 11-29 17:03 ?4901次閱讀

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

    。下面將詳細(xì)介紹在 Python 中如何實現(xiàn)這一功能。 首先,我們需要定義一函數(shù)來驗證用戶的輸入是否符合預(yù)期的條件。例如,我們可以編寫一函數(shù)
    的頭像 發(fā)表于 11-29 16:56 ?1951次閱讀

    python中計算排列組合的函數(shù)有哪些

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

    python將abc按大小順序輸出不用函數(shù)

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

    不屬于python的內(nèi)置函數(shù)

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