gpt4 book ai didi

python - 使用 lambda 表达式作为函数参数

转载 作者:行者123 更新时间:2023-11-28 22:13:57 26 4
gpt4 key购买 nike

我无法理解 lambda 表达式用作函数参数时的工作原理。例如:

import re
rep = {"hi": "hello", "ya": "you"}
text = 'hi how are ya'
keys = re.compile('hi|ya')
text = keys.sub(lambda m: rep[m.group(0)], text)
print(text)

用'hello'和'you'替换'hi'和'ya',返回

"hello how are you"

我很困惑为什么这会起作用,因为我们从未指定 m 取什么值以及 re.sub() 函数在假设第一个参数时如何解释它成为一个字符串。

最佳答案

来自 Python documentation :

If repl is a function, it is called for every non-overlapping occurrence of pattern. The function takes a single match object argument, and returns the replacement string.

您可以将 lambda 视为单行函数,因为它们在功能上是等价的,所以

lambda m: rep[m.group(0)]

成为

def unnamed_function(m):
return rep[m.group(0)]

m被分配为函数参数。

关于python - 使用 lambda 表达式作为函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53623068/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com