Python lambda函数教程:如何创建匿名函数及相关语法介绍
[id_[id_554882328]969137446]

Python Lambda 函数
Python lambda函数又叫匿名函数。它是没有名称的内联函数。该函数通过lambda关键字创建。它属于内置Python功能示例的一部分。
Python lambda函数被限定于单个表达式。它们能够在任何可使用常规功能的地方被使用。
Python Lambda 语法
Python lambda 具有以下语法:
z = lambda x: x * y
使用lambda关键字创建匿名函数。该函数用于将两个值相乘。x作为参数传递给lambda函数。参数后接冒号。冒号旁的代码是调用lambda函数时执行的表达式。lambda函数被分配给z变量
[id_416636769]
以下是演示 Python lambda 函数的简单示例。
lambda_fun_simple.py
#!/usr/bin/python3
def square(x):
return x * x
sqr_fun = lambda x: x * x
print(square(3))
print(sqr_fun(4))
在示例中,我们有两个函数对一个值求平方。
def square(x):
return x * x
这是Python函数。它用def关键字定义。函数名称是square。
sqr_fun = lambda x: x * x
在这里 我们用lambda定义了一个匿名的内联函数 要注意 这个函数没有名称 sqr_fun是保存已创建的lambda函数的变量的名字
./lambda_fun_simple.py
9
16
这是示例的输出。
Python Lambda 和map
Python lambda函数能被用于map()函数。我们能够创建更简洁的代码。Python map()是个内置函数。此函数会把给定函数应用到iterable的每一项上。并返回一个迭代器对象。
lambda_fun_map.py
#!/usr/bin/python3
nums = [1, 2, 3, 4, 5, 6]
nums_squared 等于对 nums 中的每个元素应用一个函数,该函数返回元素自身相乘的结果
for num in nums_squared:
print(num)
该示例用map()创建一个litle内联函数作为参数。我们使用map()函数。将lambda函数应用于列表的每个元素。
$ ./lambda_fun_map.py
1
4
9
16
25
36
这是输出。
Python lambda 和filter
Python lambda 函数能和 filter()函数一同使用。filter()函数依据可迭代的元素构建一个列表。这些元素返回的值为 true。
lambda_fun_filter.py
#!/usr/bin/python3
nums等于由1、2、3、4、5、6、7、8、9、10、11、12组成的列表
nums_filtered等于通过过滤函数创建的列表。过滤函数对nums进行操作。过滤函数使用lambda表达式。lambda表达式中x为参数。条件是x对2取余的结果为真。
print(nums_filtered)
在示例中,我们过滤了整数列表。 新列表仅包含奇数整数。
nums_filtered = list(filter(lambda x: x % 2, nums))
filter()的首个参数是用于处理列表元素的函数。lambda函数含有x % 2表达式。该表达式针对奇数值返回true。
$ ./lambda_fun_filter.py
[1, 3, 5, 7, 9, 11]
这是输出。
Python Lambda 和 Tkinter
Python lambda函数能应用于Tkinter的GUI编程里。它准许为command参数创建小型的内联函数。
lambda_tkinter.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from tkinter import Tk, BOTH, messagebox
从tkinter.ttk模块中导入Button
class Example(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def initUI(self):
self.parent.title("Buttons")
展开比例为1
其文本内容为“Button 1”
并传入参数"Button 1"
btn1.pack(padx=5, pady=5)
按钮2 = 按钮(自身,文本 = "按钮2",
command等于一个匿名函数,该匿名函数执行时会调用self的onClick方法,并传入参数"Button 2"
btn2.pack(padx=5, pady=5)
按钮2 等于 按钮(自身,文本为“按钮3”)
命令等于一个匿名函数,该匿名函数执行时会调用自身的onClick方法,并传入参数"Button 3"
btn2.pack(padx=5, pady=5)
def onClick(self, text):
显示信息框。信息框标题为“Button label”。信息框内容为text。
def main():
root = Tk()
并将窗口位置设置为横坐标300纵坐标300处
app = Example(root)
root.mainloop()
if __name__ == '__main__':
main()
我们有三个按钮,它们共享一个回调。lambda函数能让我们把特定数据发送到回调函数。每个按钮会在消息框里显示自身标签。
其文本内容为“Button 1”
并传入参数"Button 1"
我们把匿名函数传给command参数。我们把按钮的标签发送到onClick()回调。
在本教程中,我们使用了 Python lambda 函数。
您或许也会对以下相关教程感兴趣:Python教程、Python for循环教程、Openpyxl教程、Python列表推导教程、Python映射教程、Python CSV教程。