91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

數(shù)據(jù)分析與開發(fā) ? 來源:數(shù)據(jù)分析與開發(fā) ? 作者:數(shù)據(jù)分析與開發(fā) ? 2021-02-04 16:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

map

reduce

filter

sorted/sort

zip

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

一、map

1.1 語法

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

Python2中直接返回的是一個(gè)列表

Python3中返回的是一個(gè)可迭代器,如果想返回列表,可以使用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í)候可以有多個(gè)參數(shù)

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

二、reduce

2.1 語法

reduce函數(shù)的定義:

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

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

第一次調(diào)用function時(shí),如果提供initial參數(shù),會(huì)以sequence中的第一個(gè)元素和initial作為參數(shù)調(diào)用function,否則會(huì)以序列sequence的第一個(gè)數(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

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

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

一個(gè)復(fù)雜的例子

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

具體過程為:

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

帶有初始值的例子

初始化值和序列中的第一個(gè)值執(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ù)用于過濾序列,過濾掉不符合條件的那些元素,返回符合條件的元素組成新列表。

序列中的每個(gè)元素作為參數(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

對(duì)字符串的篩選

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

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

四、sorted

4.1 語法

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

4.2 3個(gè)參數(shù)

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

可迭代對(duì)象iterable

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

接受一個(gè)回調(diào)函數(shù)key=None,回調(diào)函數(shù)只能有一個(gè)參數(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

對(duì)元組、range對(duì)象、字典的排序

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

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

結(jié)果反轉(zhuǎn)的意義就是將結(jié)果降序排列,因?yàn)樵灸J(rèn)是升序的,使用的是reverse=True

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

4.5 理解key

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

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

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

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

4.6 對(duì)比sort()

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

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

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

五、zip

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

5.1 語法

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

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

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

help(zip) # 查看文檔

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

5.2 zip接受一個(gè)序列

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

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

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

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

5.3 zip接受多個(gè)序列

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

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

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

5.4 處理長度不同

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

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

5.5 zip(*iterables)

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

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

5.6 復(fù)雜例子

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

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

這個(gè)例子的解釋為:

[x]是一個(gè)列表中含有列表,x本身就是一個(gè)列表

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

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

5.7 zip運(yùn)用

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

列表求和

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

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

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

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

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

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

使用zip實(shí)現(xiàn):

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

責(zé)任編輯:lq

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

    關(guān)注

    3

    文章

    4417

    瀏覽量

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

    關(guān)注

    0

    文章

    649

    瀏覽量

    29993
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4877

    瀏覽量

    90078

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    請(qǐng)問如何從一個(gè)函數(shù)內(nèi)部判斷本函數(shù)是否是個(gè)成員函數(shù)還是個(gè)非成員函數(shù)?

    如何從一個(gè)函數(shù)內(nèi)部判斷本函數(shù)是否是個(gè)成員函數(shù)還是個(gè)非成員函數(shù)
    發(fā)表于 01-06 06:30

    如何選擇一個(gè)合適的高階低通濾波器

    高階低通濾波器是一種通過組合多個(gè)二階濾波器級(jí)來實(shí)現(xiàn)的濾波器,用于抑制高頻信號(hào)并保留低頻信號(hào)。從信號(hào)處理的角度來看,世界上所有的信號(hào)都可以被理解為是一個(gè)或者多個(gè)或者無窮個(gè)不同頻率、不同相位、不同幅值
    的頭像 發(fā)表于 12-30 15:37 ?850次閱讀
    如何選擇一<b class='flag-5'>個(gè)</b>合適的<b class='flag-5'>高階</b>低通濾波器

    【乾芯QXS320F開發(fā)板試用】TMUFPU內(nèi)建函數(shù)

    到現(xiàn)在,一層套一層,我又在QX-IDE使用手冊里找到了內(nèi)建函數(shù)描述表,這里面就是FPU和TMU使用的C函數(shù) 要使用內(nèi)建函數(shù),必須引用下圖頭文件 qx320f.h 打開這個(gè)頭文件,里面都是內(nèi)建函
    發(fā)表于 12-11 13:32

    Python調(diào)用API教程

    個(gè)不同系統(tǒng)之間的信息交互。在這篇文章中,我們將詳細(xì)介紹Python調(diào)用API的方法和技巧。 一、用Requests庫發(fā)送HTTP請(qǐng)求 使用Python調(diào)用API的第一步是發(fā)送HTTP請(qǐng)求,通常
    的頭像 發(fā)表于 11-03 09:15 ?900次閱讀

    Python 給 Amazon 做“全身 CT”——可量產(chǎn)、可擴(kuò)展的商品詳情爬蟲實(shí)戰(zhàn)

    一、技術(shù)選型:為什么選 Python 而不是 Java? 結(jié)論: “調(diào)研階段用 Python,上線后如果 QPS 爆表再考慮 Java 重構(gòu)。” 二、整體架構(gòu)速覽(3 分鐘看懂) 三、開發(fā)前準(zhǔn)備(5
    的頭像 發(fā)表于 10-21 16:59 ?524次閱讀
    用 <b class='flag-5'>Python</b> 給 Amazon 做“全身 CT”——可量產(chǎn)、可擴(kuò)展的商品詳情爬蟲實(shí)戰(zhàn)

    termux調(diào)試python猜數(shù)字游戲

    用termux做一個(gè)猜數(shù)字游戲 下面是在Termux中創(chuàng)建猜數(shù)字游戲的步驟及完整實(shí)現(xiàn)方案,結(jié)合Python實(shí)現(xiàn)(最適配Termux環(huán)境): ? 一、環(huán)境準(zhǔn)備(Termux基礎(chǔ)配置) 1.
    發(fā)表于 08-29 17:15

    Python中字符串逆序有幾種方式,代碼是什么

    對(duì)于一個(gè)給定的字符串,逆序輸出,這個(gè)任務(wù)對(duì)于python來說是一種很簡單的操作,畢竟強(qiáng)大的列表和字符串處理的一些列函數(shù)足以應(yīng)付這些問題 了,今天總結(jié)了一下python中對(duì)于字符串的逆序
    的頭像 發(fā)表于 08-28 14:44 ?1099次閱讀

    華為助力上海移動(dòng)加速打造5G-A高階自智網(wǎng)絡(luò)

    隨著新一輪科技革命和產(chǎn)業(yè)變革迅猛發(fā)展,上海正在加速網(wǎng)絡(luò)數(shù)智化轉(zhuǎn)型。近日,華為助力中國移動(dòng)通信集團(tuán)上海有限公司(以下簡稱“上海移動(dòng)”)成功舉辦“魔速領(lǐng)跑,智創(chuàng)未來”5G-A 2.0啟航發(fā)布會(huì),同時(shí)展示了“魔速領(lǐng)跑,智驅(qū)網(wǎng)絡(luò)”為主題的上海5G-A
    的頭像 發(fā)表于 06-26 11:50 ?1010次閱讀

    HarmonyOS5云服務(wù)技術(shù)分享--ArkTS開發(fā)函數(shù)

    ) 最后說句掏心窩的話:本地調(diào)試真的能省下80%的打包等待時(shí)間,早用早輕松!開發(fā)過程中遇到任何問題,歡迎在評(píng)論區(qū)拍磚交流~ ? 祝各位開發(fā)者調(diào)試順利,BUG退散!下次咱們再聊聊云函數(shù)高階玩法,記得關(guān)注哦~ ? (本文檔基于HarmonyOS ArkTS API 9+版本
    發(fā)表于 05-22 17:29

    HarmonyOS5云服務(wù)技術(shù)分享--云函數(shù)創(chuàng)建配置指南

    。HarmonyOS的AGC平臺(tái)提供靈活配置,支持Node.js、Python、Java等多種語言,還能自定義運(yùn)行環(huán)境哦! ?? 二、手把手創(chuàng)建第一個(gè)函數(shù) ??Step 1:進(jìn)入云函數(shù)
    發(fā)表于 05-22 17:08

    自動(dòng)駕駛行業(yè)常提的高階智駕是個(gè)啥?

    的調(diào)整,也見證了這個(gè)行業(yè)的技術(shù)演進(jìn)?!?b class='flag-5'>高階智駕”作為現(xiàn)階段在各大車企發(fā)布會(huì)經(jīng)常提到的一個(gè)詞,也預(yù)示著自動(dòng)駕駛行業(yè)正加速走入下半場。高階智駕不僅在功能上遠(yuǎn)超傳統(tǒng)的高級(jí)輔助駕駛系統(tǒng),更在核心技術(shù)、系統(tǒng)架構(gòu)以及整體安
    的頭像 發(fā)表于 04-18 12:24 ?1110次閱讀
    自動(dòng)駕駛行業(yè)常提的<b class='flag-5'>高階</b>智駕是<b class='flag-5'>個(gè)</b>啥?

    函數(shù)指針的六個(gè)常見應(yīng)用場景

    函數(shù)指針在嵌入式開發(fā)中有著廣泛的應(yīng)用,它讓代碼更加靈活,減少冗余,提高可擴(kuò)展性。很多時(shí)候,我們需要根據(jù)不同的情況動(dòng)態(tài)調(diào)用不同的函數(shù),而函數(shù)指針正是實(shí)現(xiàn)這一需求的重要工具。本文將介紹六個(gè)
    的頭像 發(fā)表于 04-07 11:58 ?1489次閱讀
    <b class='flag-5'>函數(shù)</b>指針的六<b class='flag-5'>個(gè)</b>常見應(yīng)用場景

    永磁同步電機(jī)自適應(yīng)高階滑模Type-2模糊控制

    針對(duì)永磁同步電機(jī)數(shù)學(xué)模型不確定問題,提出一種自適應(yīng)高階滑模Type-2模糊控制方法。采用積分滑模面二階滑??刂坡?,保持傳統(tǒng)滑??刂频聂敯粜圆?shí)現(xiàn)不含不確定高階輸入輸出有限時(shí)間穩(wěn)定;不需要預(yù)先確定干擾
    發(fā)表于 03-27 11:54

    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?

    在這篇文章中,我將為你簡要介紹Python程序是什么、Python程序可以用來做什么,以及如何在RaspberryPi上編寫和運(yùn)行一個(gè)簡單的Python程序。什么是
    的頭像 發(fā)表于 03-25 09:27 ?2058次閱讀
    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行<b class='flag-5'>Python</b>程序?

    詳解RTOS中的Hook函數(shù)

    Hook函數(shù)是RTOS中的一個(gè)關(guān)鍵特性,通過該函數(shù),用戶可以增強(qiáng)對(duì)任務(wù)管理的控制,定義系統(tǒng)行為。
    的頭像 發(fā)表于 03-24 16:14 ?1091次閱讀