成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python 進階:Lambda 匿名函數

開發
Lambda 函數(又稱匿名函數)是 Python 中一種簡潔的定義單行函數的方式,適用于簡單邏輯的場景。

Lambda 函數(又稱匿名函數)是 Python 中一種簡潔的定義單行函數的方式,適用于簡單邏輯的場景。

匿名函數是指沒有使用 def 語句定義的函數。它的定義語法是:

lambda 參數列表: 表達式
  • 無參數:lambda: 返回值
  • 單參數:lambda x: x * 2
  • 多參數:lambda x, y: x + y
  • 默認參數:lambda x, y=10: x + y
  • 可變參數:lambda *args: sum(args)

特點:

  • 匿名函數(無函數名)
  • 只能包含一個表達式(不能寫 return)
  • 自動返回表達式結果

1. 使用場景

(1) 配合高階函數使用

當需要一個一次性使用的簡單函數來進行計算時,lambda 函數非常方便。

# map:對每個元素平方
numbers = [1, 2, 3]
squared = list(map(lambda x: x**2, numbers))  
# [1, 4, 9]

# filter:篩選偶數
evens = list(filter(lambda x: x % 2 == 0, numbers))  
# [2]

# sorted:按字符串長度排序
words = ["apple", "kiwi", "banana"]
sorted_words = sorted(words, key=lambda s: len(s))  

# ['kiwi', 'apple', 'banana']

(2) 作為函數參數

# 自定義排序(按元組第二項)
pairs = [(1, 9), (2, 5), (3, 7)]
pairs.sort(key=lambda pair: pair[1])  
# [(2, 5), (3, 7), (1, 9)]

# 在閉包中使用
def multiplier(n):
    return lambda x: x * n

double = multiplier(2)
print(double(5))  
# 10

2. 注意事項

(1) 避免過度復雜

Lambda 應保持簡單,復雜邏輯用 def 定義

# 不推薦(可讀性差)
result = (lambda x: x**2 if x > 0 else 0)(5)

# 推薦使用 def
def square_if_positive(x):
    return x**2 if x > 0 else 0

(2) 作用域問題

在循環中創建 lambda 時,注意變量捕獲:

# 錯誤示例(所有函數都返回 9)
funcs = [lambda: i for i in range(10)]
print(funcs[0]())  # 輸出 9(i 的最終值)

# 正確做法:使用默認參數凍結當前值
funcs = [lambda i=i: i for i in range(10)]
print(funcs[0]())  # 輸出 0

(3) 不能包含語句

禁止使用 if(條件表達式 x if cond else y 除外)、for、while 等語句。

3. 總結

  • 適用場景:簡單邏輯、一次性的小型函數(如排序鍵、映射轉換)。
  • 優勢:代碼簡潔,無需命名。
  • 限制:不支持多行邏輯或復雜控制流。

最佳實踐:

  • 與 map()、filter()、sorted() 配合使用
  • 作為高階函數的參數
  • 避免替代復雜的命名函數
責任編輯:趙寧寧 來源: 程序員老朱
相關推薦

2020-09-21 06:10:47

Python lambda匿名函數

2024-02-27 09:43:37

Pythonlambda函數

2024-12-17 09:00:00

lambda函數Python

2020-10-16 06:40:25

C++匿名函數

2023-05-31 13:32:08

Javalambda函數

2013-01-20 14:54:34

PythonLambda

2023-12-13 10:12:40

Python函數lambda

2022-07-07 09:03:36

Python返回函數匿名函數

2023-12-14 15:31:43

函數式編程python編程

2023-11-01 16:55:27

Golang匿名函數

2022-09-13 09:31:59

Python內置函數lambda

2021-08-07 07:21:26

AndroidKotlinLambda

2020-09-30 08:32:40

Python

2019-09-03 10:55:20

Python函數lambad

2022-10-31 08:02:07

Python函數式編程

2009-07-31 14:08:54

C# 匿名函數

2022-08-05 13:51:32

Python函數lambda

2009-12-16 14:24:48

Ruby函數lambd

2022-06-27 08:36:08

PythonLambda

2020-05-20 10:35:53

Python開發函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日操操夜操操 | 日韩一区二区三区精品 | 国产精品亚洲一区二区三区在线 | 中文字幕av在线一二三区 | 国产日韩欧美一区 | 国产精品视频97 | 欧美精品在欧美一区二区少妇 | 一级一级一级毛片 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 日韩在线视频一区 | 国产日韩欧美另类 | 亚洲视频二区 | 日韩精品一区在线 | 国产成人综合亚洲欧美94在线 | 成人在线看片 | 伊人伊人伊人 | 亚洲成人免费 | 偷拍第一页| 日韩一区二区在线播放 | 国产精品夜色一区二区三区 | 国产三级在线观看播放 | 一级黄色影片在线观看 | 在线观看中文字幕 | 成人精品视频在线观看 | 九色网址 | 伦理一区二区 | 国产精品不卡一区 | 国产午夜精品一区二区三区四区 | www免费视频 | 亚洲成人精品一区二区 | 亚洲va欧美va人人爽午夜 | 亚洲中午字幕 | 亚洲日日夜夜 | 精品久久久久久红码专区 | 国产女人叫床高潮大片免费 | 日本aa毛片a级毛片免费观看 | 精品毛片| 日韩精品一区二区三区中文字幕 | 精品国产色 | 欧美性视频在线播放 | 国产成人久久精品一区二区三区 |