在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

什么是Lambda函數

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-17 11:27 ? 次閱讀

今天來給大家推薦一個Python當中超級好用的內置函數,那便是lambda方法,本篇教程大致和大家分享

  • 什么是lambda函數
  • lambda函數過濾列表元素
  • lambda函數和map()方法的聯用
  • lambda函數和apply()方法的聯用
  • 什么時候不適合使用lambda方法

什么是Lambda函數

在Python當中,我們經常使用lambda關鍵字來聲明一個匿名函數,所謂地匿名函數,通俗地來講就是沒有名字的函數,具體的語法格式如下所示

lambda arguments : expression

其中它可以接受任意數量的參數,但是只允許包含一個表達式,而該表達式的運算結果就是函數的返回值,我們可以簡單地來寫一個例子

(lambda x:x**2)(5)

output

25

過濾列表中的元素

那么我們如何來過濾列表當中的元素呢?這里就需要將lambda函數和filter()方法聯合起來使用了,而filter()方法的語法格式

filter(function, iterable)
  • function -- 判斷函數
  • iterable -- 可迭代對象,列表或者是字典

其中我們有這么一個列表

import numpy as np
yourlist = list(np.arange(2,50,3))

其中我們想要過濾出2次方之后小于100的元素,我們來定義一個匿名函數,如下

lambda x:x**2< 100

最后出來的結果如下所示

list(filter(lambda x:x**2 100, yourlist))

output

[2, 5, 8]

要是遇上復雜的計算過程,小編這里還是推薦大家自己自定義一個函數,但若是簡單的計算過程,lambda匿名函數絕對是最佳的選擇

map()函數的聯用

map()函數的語法和上面的filter()函數相近,例如下面這個匿名函數

lambda x: x**2+x**3

我們將其和map()方法聯用起來

list(map(lambda x: x**2+x**3, yourlist))

output

[12,
 150,
 576,
 1452,
 2940,
 5202,
 ......]

當然正如我們之前提到的lambda匿名函數可以接受多個數量的參數,我們這里就可以來嘗試一下了,例如有兩組列表,

mylist = list(np.arange(4,52,3))
yourlist = list(np.arange(2,50,3))

我們同樣使用map()方法來操作,代碼如下

list(map(lambda x,y: x**2+y**2, yourlist,mylist))

output

[20,
 74,
 164,
 290,
 452,
 650,
 884,
 1154,
......]

apply()方法的聯用

apply()方法在Pandas的數據表格中用的比較多,而在apply()方法當中就帶上lambda匿名函數,我們新建一個數據表格,如下所示

myseries = pd.Series(mylist)
myseries

output

0      4
1      7
2     10
3     13
4     16
5     19
6     22
7     25
8     28
......
dtype: int32

apply()方法的使用和前兩者稍有不同,map()方法和filter()方法我們都需要將可迭代對象放入其中,而這里的apply()則不需要

myseries.apply(lambda x: (x+5)/x**2)

output

0     0.562500
1     0.244898
2     0.150000
3     0.106509
4     0.082031
5     0.066482
6     0.055785
7     0.048000
......
dtype: float64

而要是遇到DataFarme表格數據的時候,也是同樣地操作

df = pd.read_csv(r'Dummy_Sales_Data_v1.csv')
df["Sales_Manager"] = df["Sales_Manager"].apply(lambda x: x.upper())
df["Sales_Manager"].head()

output

0      PABLO
1      PABLO
2    KRISTEN
3      ABDUL
4     STELLA
Name: Sales_Manager, dtype: object

并且通過apply()方法處理可是比直接用str.upper()方法來處理,速度來的更快哦??!

不太適合使用的場景

那么不適合的場景有哪些呢?那么首先lambda函數作為一個匿名函數,不適合將其賦值給一個變量,例如下面的這個案例

squared_sum = lambda x,y: x**2 + y**2
squared_sum(3,4)

相比較而言更好的是自定義一個函數來進行處理

def squared_sum(x,y):
    return x**2 + y**2
  
squared_sum(3,4)

output

25

而我們遇到如下情景的時候,可以對代碼稍作簡化處理

import math
mylist = [10, 25, 40, 49, 65, 81]
sqrt_list = list(map(lambda x: math.sqrt(x), mylist))
sqrt_list

output

[3.16227766, 5.0, 6.324555320, 7.0, 8.062257748, 9.0]

我們可以將其簡化成

import math
mylist = [10, 25, 40, 49, 65, 81]
sqrt_list = list(map(math.sqrt, mylist))
sqrt_list

output

[3.162277, 5.0, 6.324555, 7.0, 8.062257, 9.0]

如果是Python當中的內置函數,尤其是例如math這種用于算數的模塊,可以不需要放在lambda函數中,可以直接抽出來用

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

    關注

    11

    文章

    1860

    瀏覽量

    32447
  • 函數
    +關注

    關注

    3

    文章

    4346

    瀏覽量

    63013
  • Lambda
    +關注

    關注

    0

    文章

    30

    瀏覽量

    9919
收藏 人收藏

    評論

    相關推薦

    #硬聲創作季 66.lambda函數

    編程語言python
    Mr_haohao
    發布于 :2022年08月30日 06:31:54

    #硬聲創作季 語言程序設計:119.5.1 函數的定義與使用__lambda函數(,P119)

    編程語言python
    Mr_haohao
    發布于 :2022年10月01日 07:39:13

    Python程序設計: lambda函數(1)#Python程序設計

    編程語言python
    學習電子
    發布于 :2023年04月06日 15:04:59

    Python程序設計: lambda函數(2)#Python程序設計

    編程語言python
    學習電子
    發布于 :2023年04月06日 15:05:24

    lambda函數(1)#Python

    參數函數python
    未來加油dz
    發布于 :2023年08月24日 17:21:09

    lambda函數(2)#Python

    參數函數python
    未來加油dz
    發布于 :2023年08月24日 17:22:12

    lambda函數基礎

    lambda函數基礎lambda與def
    發表于 12-29 06:22

    如何使用homeassantant軟件創建自定義技能以在樹莓派上操作GPIO

    對于HTTPS設置,我使用了Amazon aws的lambda函數。因此,請轉到console.aws.amazon.com并創建一個帳戶。
    的頭像 發表于 12-11 16:06 ?3068次閱讀

    關于Python的5種高級特征應用

    本文主要講解 Python 的 5 種高級特征,以及它們的用法。 1. Lambda 函數 Lambda 函數是一種比較小的匿名函數匿名是指
    的頭像 發表于 09-27 15:56 ?1413次閱讀

    關于Python 60道硬核面試題 你知道多少

    1. Python 的特點和優點是什么? 答案:略。 2. 什么是lambda函數?它有什么好處? lambda 函數是一個可以接收任意多個參數(包括可選參數)并且返回單個表達式值的
    發表于 12-18 13:11 ?1945次閱讀

    AWS,Azure和Google Cloud在云中可用的當前服務

    2020年12月1日,當世界為以COVID-19大流行為主導的動蕩年末做準備時,AWS為云社區帶來了早期的禮物。 對AWS Lambda函數的容器支持。將Lambda函數打包和部署為容
    的頭像 發表于 01-15 14:45 ?1779次閱讀

    智慧辦公解決方案

    OpenSensors 設計了一個 LoRa Basics? Station,將所有數據都轉發到其 AWS IoT Core 云平臺。他們使用 Lambda 函數,對連接到其平臺前端的數據進行后處理,并將其可視化。這種設計不僅提供穩定的服務、零停機和無縫故障轉移,而且讓客
    的頭像 發表于 11-09 11:10 ?861次閱讀
    智慧辦公解決方案

    6個堪稱神仙的內置函數

    分享6個堪稱神仙的內置函數。在很多計算機書籍中,它們也通常作為 高階函數 來介紹。而我自己在日常工作中,經常使用它們來使代碼更快,更易于理解。 Lambda 函數
    的頭像 發表于 10-21 14:41 ?559次閱讀
    6個堪稱神仙的內置<b class='flag-5'>函數</b>

    Lambda函數指針的性能對比

    很多時候,選擇單一,事情做來不會有多少阻力,選擇太多 ,倒是舉棋難定了。
    的頭像 發表于 10-21 13:43 ?476次閱讀
    <b class='flag-5'>Lambda</b>和<b class='flag-5'>函數</b>指針的性能對比

    亞馬遜云科技推出Amazon Lambda SnapStart功能

    亞馬遜云科技推出Amazon Lambda SnapStart,大幅提升Java Lambda函數啟動性能   北京,2024年10月29日 —— 亞馬遜云科技近日宣布,與光環新網和西云數據
    的頭像 發表于 10-30 10:59 ?338次閱讀
    主站蜘蛛池模板: 中文永久免费看电视网站入口 | 又黑又长黑人欧美三级 | 天天躁狠狠躁狠狠躁夜夜躁 | 69日本xxxxhd| 色综合久久久高清综合久久久 | 色在线免费 | 国产精品美乳在线观看 | 性欧美大战久久久久久久 | 男女无遮挡在线完整视频 | 国产二三区 | 77788色淫网站女女免费视频 | 久久精品视频网站 | 色妞女女女女女bbbb | 日本黄色小说视频 | 天堂种子 | 国内真实下药迷j在线观看 国内自拍 亚洲系列 欧美系列 | 亚洲视频在线一区二区三区 | 免费一级大毛片a一观看不卡 | 在线永久免费观看黄网站 | 天天躁夜夜躁狠狠躁2018a | 大喷水吹潮magnet | 日本污视频在线观看 | 午夜视频在线网站 | 色老头在线精品视频在线播放 | 性欧美大战久久久久久久 | 中文字幕在线观看一区二区 | 一个人看aaaa免费中文 | 亚洲最大成人综合网 | 欧美性xxxx交 | 99色综合 | 视频一本大道香蕉久在线播放 | 国产黄色小视频 | 国内真实实拍伦视频在线观看 | 国产精品入口免费视频 | 深爱五月网 | bt天堂网在线资源www | 国产全部理论片线观看 | 中国一级黄色毛片 | 欧美成人久久 | 天天做天天添婷婷我也去 | 夜夜爱夜夜爽夜夜做夜夜欢 |