Python語法系列博客 · 第8期[特殊字符] Lambda函數與高階函數:函數式編程初體驗

上一期小練習解答(第7期回顧)

? 練習1:找出1~100中能被3或5整除的數
result = [x for x in range(1, 101) if x % 3 == 0 or x % 5 == 0]

? 練習2:生成字符串長度字典

words = ["apple", "banana", "grape"]
lengths = {word: len(word) for word in words}

? 練習3:乘法字典

multiplication_table = {(i, j): i * j for i in range(1, 6) for j in range(1, 6)}

?? 練習4:唯一偶數集合

lst = [1, 2, 2, 3, 4, 4, 6]
even_set = {x for x in lst if x % 2 == 0}

本期主題:Lambda函數與高階函數


🟦 8.1 匿名函數 lambda

匿名函數(Lambda)是用來創建簡單函數的一種簡潔方式。

? 基本語法:
lambda 參數: 表達式

?? 注意:lambda 函數只能寫一行表達式,不能有多行語句。

示例:普通函數 vs lambda

def add(x, y):return x + yadd_lambda = lambda x, y: x + yprint(add(2, 3))         # 5
print(add_lambda(2, 3))  # 5

8.2 高階函數簡介

高階函數指的是接收函數作為參數,或返回另一個函數的函數。

8.3 map() 函數

對可迭代對象中的每個元素執行某個函數。

nums = [1, 2, 3, 4]
squares = list(map(lambda x: x**2, nums))
print(squares)  # [1, 4, 9, 16]

8.4 filter() 函數

篩選符合條件的元素。

nums = [1, 2, 3, 4, 5, 6]
evens = list(filter(lambda x: x % 2 == 0, nums))
print(evens)  # [2, 4, 6]

?

8.5 reduce() 函數(需導入 functools)

對所有元素累積運算。

from functools import reducenums = [1, 2, 3, 4]
total = reduce(lambda x, y: x + y, nums)
print(total)  # 10

?

應用實例:常見用法組合

🔹 對字符串列表大小寫轉換
words = ["apple", "banana", "grape"]
upper = list(map(lambda w: w.upper(), words))

🔹 保留長度大于5的字符串

long_words = list(filter(lambda w: len(w) > 5, words))

🔹 所有價格加稅10%

prices = [100, 200, 300]
taxed = list(map(lambda p: round(p * 1.1, 2), prices))

本期小練習

  1. 使用 map[1, 2, 3, 4, 5] 轉為字符串列表。

  2. 使用 filter 從列表中篩選出所有回文字符串(例如 "madam")。

  3. 使用 reduce 計算 [2, 3, 4] 的乘積。

  4. 定義一個 lambda 函數,實現 x2 + 2x + 1 的計算。

本期小結

  • 學習了 lambda匿名函數 的用法。

  • 掌握了三種常用的高階函數:map, filter, reduce

  • 初步感受了 函數式編程思想 的強大與簡潔。

第9期預告:

下一期我們將深入了解:

  • Python中的函數定義進階

  • 可變參數:*args**kwargs

  • 參數解包與實戰技巧

  • 默認參數 & 關鍵字參數的使用場景

?

?

?

?

?

?

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

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

相關文章

Redis--主從復制

目錄 一、配置 1.1 建立復制 1.2 斷開復制 1.3 安全性 1.4 只讀 1.5 傳輸延遲 二、拓撲 2.1 一主一從結構 2.2 一主多從結構 2.3 樹形主從結構 在分布式系統中為了解決單點問題,通常會把數據復制多個副本部署到其他服務器,滿足故障恢 復和負載均衡等需求…

已注冊商標如何防止被不使用撤銷!

近年來已注冊商標被撤銷越來越多,不乏著名企業或機構,普推知產商標老楊看到前一陣看到央視和百度等申請的商標也被申請撤銷,連續三年不使用撤銷也是正常的商標流程。 已注冊商標被撤銷普推老楊看到案例主要是集中在一些早期申請注冊的好記的商…

解密大模型背后的秘密:訓練、優化與挑戰

解密大模型背后的秘密:訓練、優化與挑戰 在當今的人工智能領域,大模型(Large Language Models, LLMs)已經成為了一個不可忽視的存在。從自然語言處理到圖像生成,再到推薦系統,大模型以其強大的泛化能力和創…

App自動化測試流程方案與架構設計

App自動化測試流程方案與架構設計 一、核心流程設計 #mermaid-svg-kN4GmIvHb8MMT83M {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-kN4GmIvHb8MMT83M .error-icon{fill:#552222;}#mermaid-svg-kN4GmIvHb8MMT83M .e…

字節跳動發布視頻生成基礎大模型 Seaweed-7B

近日,字節跳動發布了其全新視頻生成基礎大模型 Seaweed-7B,該模型由字節 Seed 團隊開發,參數量僅為 70 億,在多個方面展現出卓越性能,為 AI 視頻生成領域帶來了新的突破。 功能特點 支持多種生成方式:Sea…

如何基于區塊鏈進行虛擬電廠運營平臺建設?

本項目旨在基于區塊鏈技術建設虛擬電廠運營平臺,以提升省內大用戶及工業企業和工業園區的需求響應能力,優化能源結構配置,并推動能源交易、需求響應和現貨交易等新型業態的發展。通過建設虛擬電廠,項目將實現工業企業及園區各供用…

LeetCode[459]重復的子字符串(KMP解法)

思路: 最近迷上了KMP算法,所以這道題也是來搞一下KMP算法,總所周知KMP是需要維護一個前綴表,KMP算法不是比較一個字符串包不包含另一個字符串的嗎,這個重復字符串的題也能用?貓爺:毋庸置疑&…

spring-batch批處理框架(2)

文章目錄 八、作業控制8.1 作業啟動8.1.1 SpringBoot 啟動8.1.2 Spring 單元測試啟動8.1.3 RESTful API 啟動 8.2 作業停止方案1:Step 步驟監聽器方式方案2:StepExecution停止標記 8.3 作業重啟8.3.1 禁止重啟8.3.2 限制重啟次數8.3.3 無限重啟 九、Item…

uniapp的通用頁面及組件基本封裝

1.基本布局頁面 適用于自定義Navbar頭部 <template><view :style"{ background : param.bgColor , height: 100% }"><block v-if"param.noHead"><slot name"head"></slot></block><block v-if"!p…

基于MTF的1D-2D-CNN-GRU-Attention時序圖像多模態融合的故障識別,適合研究學習(Matlab完整源碼和數據),附模型研究報告

基于MTF的1D-2D-CNN-GRU-Attention時序圖像多模態融合的故障識別&#xff0c;適合研究學習&#xff08;Matlab完整源碼和數據&#xff09;&#xff0c;附模型研究報告 目錄 基于MTF的1D-2D-CNN-GRU-Attention時序圖像多模態融合的故障識別&#xff0c;適合研究學習&#xff08;…

HTTP/1.1 隊頭堵塞問題

文章目錄 一、隊頭堵塞1、非管線化2、管線化 二、如何解決&#xff1f; 一、隊頭堵塞 1、非管線化 如圖&#xff0c;http 請求必須等到上一個請求響應后才能發送&#xff0c;后面的以此類推&#xff0c;由此可以看出&#xff0c;在一個 tcp 通道中&#xff0c;如果某個 http 請…

施磊老師基于muduo網絡庫的集群聊天服務器(二)

文章目錄 Cmake簡單介紹Cmake與MakefileCmake配置CmakeLists.txt 編寫完整cmake例子文件夾雜亂問題多級目錄Cmakevscode 極其推薦 的 cmake方式 Mysql環境與編程mysql簡單使用User表Friend表AllGroup表GroupUser表OfflineMessage表 集群聊天項目工程目錄創建網絡模塊代碼Chatse…

4.18---緩存相關問題(操作原子性,擊穿,穿透,雪崩,redis優勢)

為什么要用redis做一層緩存&#xff0c;相比直接查mysql有什么優勢&#xff1f; 首先介紹Mysql自帶緩存機制的問題&#xff1a; MySQL 的緩存機制存在一些限制和問題,它自身帶的緩存功能Query Cache只能緩存完全相同的查詢語句&#xff0c;對于稍有不同的查詢語句&#xff0c…

健康養生指南

在快節奏的現代生活中&#xff0c;健康養生成為人們關注的焦點。它不僅關乎身體的強健&#xff0c;更是提升生活質量、預防疾病的關鍵。掌握科學的養生方法&#xff0c;能讓我們在歲月流轉中始終保持活力。 飲食是健康養生的基礎。遵循 “均衡膳食” 原則&#xff0c;每日飲食需…

#去除知乎中“鹽選”付費故事

添加油猴腳本&#xff0c;去除知乎中“鹽選”付費故事 // UserScript // name 鹽選內容隱藏腳本 // namespace http://tampermonkey.net/ // version 0.2 // description 自動隱藏含有“鹽選專欄”或“鹽選”文字的回答卡片 // author YourName // mat…

如何防止接口被刷

目錄 &#x1f6e1;? 一、常見的防刷策略分類 &#x1f527; 二、技術實現細節 ? 1. 基于 IP 限流 ? 2. 給接口加驗證碼 ? 3. 使用 Token 限制接口訪問權限 ? 4. 給接口加冷卻時間&#xff08;驗證碼類經典&#xff09; ? 5. 使用滑動窗口限流算法&#xff08;更精…

github 項目遷移到 gitee

1. 查看遠程倉庫地址 git remote -v 2. 修改遠程倉庫地址 確保 origin 指向你的 Gitee 倉庫&#xff0c;如果不是&#xff0c;修改遠程地址。 git remote set-url origin https://gitee.com/***/project.git 3. 查看本地分支 git branch 4. 推送所有本地分支 git p…

探索大語言模型(LLM):目標、原理、挑戰與解決方案

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言語言模型的目標語言模型的數學表示語言模型面臨的挑戰解決參數量巨大的方法1. 馬爾可夫假設2. 神經網絡語言模型3.自監督學習4. 分布式表示 腦圖總結 前言 在自…

Kubernetes》》k8s》》Namespace

Namespace 概述 Namespace&#xff08;命名空間&#xff09; 是 Kubernetes 中用于邏輯隔離集群資源的機制&#xff0c;可將同一集群劃分為多個虛擬環境&#xff0c;適用于多團隊、多項目或多環境&#xff08;如開發、測試、生產&#xff09;的場景。 核心作用&#xff1a; 資…

FFUF指南

ffuf 的核心功能&#xff1a; 目錄/文件發現&#xff1a; 通過暴力破解&#xff08;使用字典&#xff09;探測目標網站的隱藏目錄或文件&#xff0c;例如&#xff1a; ffuf -w /path/to/wordlist.txt -u http://target.com/FUZZ 子域名枚舉&#xff1a; 通過模糊測試發現目標…