python24-匿名函數

課程:B站大學
記錄python學習,直到學會基本的爬蟲,使用python搭建接口自動化測試就算學會了,在進階webui自動化,app自動化

匿名函數

  • 匿名函數
  • 實踐是檢驗真理的唯一標準


匿名函數

匿名函數是指沒有名字的函數,應用在需要一個函數,但是又不想費神去命名這個函數的場合。

在通常情況下,這樣的函數只使用一次。

在 Python 中使用 lambda 表達式創建匿名函數。

lambda 表達式可用于任何需要函數對象的地方。
在語法上,匿名函數只能是單個表達式。
在語義上,它只是常規函數定義的語法糖。
lambda 表達式中不能使用 if、for-in、while、return 等語句, 但可以使用三目運算符
lambda 表達式
格式:

result = lambda [arg1 [, arg2, … , argn]]: expression
result:用于保存 lambda 表達式的引用
[arg1 [, arg2, … , argn]]::可選,指定要傳遞的參數列表,多個參數間使用英文的逗號 , 進行分隔。
expression:必選,指定一個實現具體功能的表達式。如果有參數,那么在該表達式中將應用這些參數。

示例:

def add(n1, n2):return n1 + n2result = add(1,2)
print(result)add = lambda x,y: x+y
result = add(2,3)
print(result)func = lambda x: x**2  if x > 3 else x**3
print(func(3))

使用場景
通常在這個函數只使用一次的場景下
可以指定短小的回調函數
比如,在學習列表時的 sort() 排序方法,如果是簡單的基本數據類型的數據,可以直接進行排序,但如果是復雜結構的數據,需要根據自定義的規則進行排序,此時就可以使用 lambda。

示例:

# 待排序的數據
students = [{'name': 'Alice', 'id': '1001', 'class': 'Class1'},{'name': 'Eve', 'id': '1005', 'class': 'Class2'},{'name': 'Charlie', 'id': '1003', 'class': 'Class1'},{'name': 'David', 'id': '1004', 'class': 'Class2'},{'name': 'Bob', 'id': '1002', 'class': 'Class1'},{'name': 'Frank', 'id': '1006', 'class': 'Class2'}
]
# TypeError: '<' not supported between instances of 'dict' and 'dict'
# students.sort()# 以名字排序
students.sort(key=lambda stu: stu["name"])
for s in students:print(s)# 以ID降序排序
students.sort(key=lambda stu: stu["id"],reverse=True)
for s in students:print(s)
Sorted 函數實現原理students = [{'name': 'Alice', 'id': '1001', 'class': 'Class1'},{'name': 'Eve', 'id': '1005', 'class': 'Class2'},{'name': 'Charlie', 'id': '1003', 'class': 'Class1'},{'name': 'David', 'id': '1004', 'class': 'Class2'},{'name': 'Bob', 'id': '1002', 'class': 'Class1'},{'name': 'Frank', 'id': '1006', 'class': 'Class2'}
]def mySorted(obj, key=None, reverse=False):newStus = []for s in students:for n in newStus:if key:if(key(s) < key(n)):idx = newStus.index(n)newStus.insert(idx, s)breakelse:if (s < n):idx = newStus.index(n)newStus.insert(idx, s)breakelse:newStus.append(s)return newStus if reverse else newStus[::-1]# students = mySorted(students, key=lambda s: s["name"])
# students.sort(key=lambda s: s["name"])
students = [1,4,2,6,7,8,4,3,3]
students = mySorted(students, reverse=True)
print(students)
for s in students:print(s)

匿名函數好處:用于一次性處理的函數,用lambda 表達式方便運算
在這里插入圖片描述

實踐是檢驗真理的唯一標準

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/82174.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/82174.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/82174.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android 查看 Logcat (可純手機方式 無需電腦)

安裝 Logcat Reader Github Google Play 如果有電腦 使用其ADB方式可執行如下命令 后續無需安裝Termux # 使用 ADB 授予 android.permission.READ_LOGS 權限給 Logcat Reader adb shell "pm grant com.dp.logcatapp android.permission.READ_LOGS && am force-…

驅動開發硬核特訓 · Day 30(上篇):深入理解 I2C 總線驅動模型(以 at24 EEPROM 為例)

作者&#xff1a;嵌入式Jerry 視頻教程請關注 B 站&#xff1a;“嵌入式Jerry” 一、寫在前面 在上一階段我們已經深入理解了字符設備驅動與設備模型之間的結合方式、sysfs 的創建方式以及平臺驅動模型的實際運用。今天我們邁入總線驅動模型的世界&#xff0c;聚焦于 I2C 總線…

超詳細講解注意力機制、自注意力機制、多頭注意力機制、通道注意力機制、空間注意力機制

在如今的機器學習和深度學習領域&#xff0c;注意力機制絕對是一個熱度居高不下的話題。事實上&#xff0c;注意力機制并不是一個全新的概念&#xff0c;早在多年前就已經被提出并應用。比如在圖像分類任務中&#xff0c;SENet 和 ECA-Net 等模型中都運用了注意力機制&#xff…

Wireshark基本使用

本文會對Wireshark做簡單介紹&#xff0c;帶大家熟悉一下Wireshark的界面&#xff0c;以及如何使用過濾器。 接著會帶大家查看TCP五層模型下&#xff0c;帶大家回顧各層首部的格式。 最后會演示 Wireshark 如何抓取三次握手和四次揮手包的過程。 目錄 一.Wireshark簡介 二…

加速項目落地(Trae編輯器)

目錄 vscode安裝python支持 vscode常用插件 Trae編輯器 兩個界面合成 補充&#xff08;QT開發的繁瑣&#xff09; AI編程哪家強&#xff1f;Cursor、Trae深度對比&#xff0c;超詳細&#xff01; - 知乎 Trae兼容vscode的插件&#xff0c;我們可以先在vscode里面裝好再一…

stable diffusion的attention-map:提取和可視化跨注意力圖

項目&#xff1a; wooyeolbaek/attention-map-diffusers: &#x1f680; Cross attention map tools for huggingface/diffusers 參考&#xff1a;【可視化必備技能&#xff08;1&#xff09;】SD / Flux 文生圖模型的 Attention Map 可視化-CSDN博客

多環串級PID

文章目錄 為什么要多環程序主函數內環外環 雙環PID調參內環Kp調法Ki調法 外環Kp 以一定速度到達指定位置封裝 為什么要多環 單環只能單一控制速度或者位置&#xff0c;如果想要同時控制多個量如速度&#xff0c;位置&#xff0c;角度&#xff0c;就需要多個PID 速度環一般PI…

基于Kubernetes的Apache Pulsar云原生架構解析與集群部署指南(上)

#作者&#xff1a;閆乾苓 文章目錄 概念和架構概述主要特點消息傳遞核心概念Pulsar 的消息模型Pulsar 的消息存儲與分發Pulsar 的高級特性架構BrokerBookKeeperZooKeeper 概念和架構 概述 Pulsar 是一個多租戶、高性能的服務器到服務器消息傳遞解決方案。Pulsar 最初由雅虎開…

電子電氣架構 --- 如何有助于提安全性并減少事故

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 鈍感力的“鈍”,不是木訥、遲鈍,而是直面困境的韌勁和耐力,是面對外界噪音的通透淡然。 生活中有兩種人,一種人格外在意別人的眼光;另一種人無論…

rest_framework學習之認證 權限

權限 DRF提供如下幾種常見權限&#xff1a; IsAuthenticated, 認證通過 IsAdminUser, 管理員權限 IsAuthenticatedOrReadOnly, 登錄用戶增刪改 非登錄用戶只能查詢 AllowAny&#xff0c;無需認證&#xff08;默認&#xff09; 在rest_framework的APIView基礎類中&#xf…

【使用switch結構輸出季節】2021-11-23

緣由用switch語句設計程序一年有12個月-編程語言-CSDN問答 void 使用switch結構輸出季節(int y) {//緣由https://ask.csdn.net/questions/7577096?spm1005.2025.3001.5141std::cout << y << "\t";switch (y){case 3: case 4: case 5:std::cout <<…

主備Smart Link + Monitor Link組網技術詳細配置

1.實驗拓撲 2.使用設備 eNSP模擬建議下行設備三臺使用S3700模擬&#xff08;全部使用S5700可能會出現流量丟失等異常問題。&#xff09; 3.實驗配置 [SW1]dis cu # sysname SW1 # vlan batch 100 110 # interface Ethernet0/0/1port link-type accessport default vlan 100 …

【hadoop】案例:Sqoop遷移倉庫數據

1 數據導出&#xff1a;Hive導入MySQL [hadoophadoop1 sqoop]$ bin/sqoop export \ > --connect jdbc:mysql://localhost/weather \ > --username root \ > --password 123456 \ > --table mean_temperature \ > --export-dir /user/hive/warehouse/mydb/mean…

Mysql-OCP PPT課程講解并翻譯

#跳過介紹&#xff0c;直接從干貨開始記錄 第一章 安裝mysql

springboot+vue實現在線網盤(云盤)系統

今天教大家如何設計一個網盤&#xff08;云盤&#xff09;系統系統 , 基于目前主流的技術&#xff1a;前端vue&#xff0c;后端springboot。 同時還帶來的項目的部署教程。 視頻演示 springbootvue實現在線網盤&#xff08;云盤&#xff09;系統 圖片演示 一. 系統概述 用過百…

JAVA:Spring Boot 集成 Lua 的技術博客

1、簡述 在現代開發中,Lua 以其輕量級、高性能以及易嵌入的特點廣泛用于腳本擴展、游戲開發以及配置處理場景。將 Lua 與 Spring Boot 集成,可以在 Java 項目中實現動態腳本功能,增強項目的靈活性和動態配置能力。 樣例代碼: https://gitee.com/lhdxhl/springboot-example…

uniapp-商城-43-shop 后臺管理 頁面

后臺管理較為簡單&#xff0c;主要用于后臺數據的管理&#xff0c;包含商品類別和商品信息&#xff0c;其實還可以擴展到管理用戶等等 1、后臺首頁 包含 分類管理 商品管理 關于商家等幾個欄目 主要代碼&#xff1a; <template><view class"manage">…

食物數據分析系統vue+flask

食物數據分析系統 項目概述 食物數據分析系統是一個集食物營養成分查詢、對比分析和數據可視化于一體的Web應用。系統采用前后端分離架構&#xff0c;為用戶提供食物營養信息檢索、食物對比和營養分析等功能&#xff0c;幫助用戶了解食物的營養成分&#xff0c;做出更健康的飲…

學習基本樂理知識

本文主要內容 如何練習吉他 樂理知識補充 ps&#xff1a;本文知識均來自up主 ‘吉他大學霸’ 感謝開源 -^- 練習吉他步驟 打怪升級 右手--> 左手--> 音階--> 拓展 第一階段&#xff1a; 追求手腳配合不出錯、手姿勢不出錯、手不會按錯彈錯。連續不錯的遍數達標就可以進…

吊球技術(劈吊、滑板等)

羽毛球吊球技術&#xff08;劈吊、滑板等&#xff09;是單打和雙打中重要的得分手段&#xff0c;需要通過系統性練習掌握。以下是分步驟的詳細訓練方法&#xff1a; 一、核心技術原理對比 技術類型擊球點拍面控制發力特點適用場景正手劈吊高點偏前斜切&#xff08;拍面45&…