Python - lambda 表达式(上)

简介: Python - lambda 表达式(上)

Python 中的函数是第一类对象


  • 好像很多地方都会看到这样一句话
  • Python 创始人也说过,所有的对象都是第一类对象

 

什么是第一类对象


  • 在上面中所说的第一类对象,其实是指函数作为一个对象,与其它对象具有相同的地位
  • 具体来说,数值可以被赋值给变量、作为参数传递给函数、作为返回值
  • 因为函数和数值具有相同的地位,所以函数也可以被赋值给变量、作为参数传递给函数、作为返回值

 

将对象赋值给变量


可以将数值、字符串、列表、字典类型的对象赋值给变量

number = 123
string = "hello"
list = [1, 2, 3]
dict = {'name': 'tom', 'age': 12}


将对象作为参数传递


可以将数值、字符串、列表、字典类型的对象作为参数传递给函数

print(123)
print("hello")
print([1, 2, 3])
print({'name': 'tom', 'age': 12})


将对象用作返回值


可以将数值、字符串、列表、字典类型的对象作为函数的返回值

def return_number():
    return 123
def return_string():
    return "hello"
def return_list():
    return [1, 2, 3]    
def return_dict():    
    return {'name': 'tom', 'age': 12}


将函数作为第一类对象


将函数作为第一类对象,函数具有和数值、字符串、列表、字典等类型的对象具有相同的地位

 

将函数赋值给变量

def max(a, b):
    if a > b:
        return a
    else:
        return b
var = max
print(var(1, 2))
# 输出结果
2


将函数作为参数传递

def func():
    print("function")
def pass_func(data):
    print("pass func")
    data()
pass_func(func)
# 输出结果
pass func
function


将函数作为返回值

def func():
    print("function")
def return_func():
    print("pass func")
    return func
# 等价 var = func
var = return_func()
var()


将函数作为第一类对象的意义


将函数作为第一类对象,是一种重要的抽象机制,极大的提升了程序的灵活性

 

实战栗子

  • 存在一个列表 [1, -1, 2, -2, 3, -3]
  • 打印输出列表中的正数
  • 打印输出列表中的负数

 

包含重复性代码的解决方法

代码结构完全相同,只是条件判断不同

# 重复性代码解决方法
list = [1, -1, 2, -2, 3, -3]
def print_positive(list):
    for item in list:
        if item > 0:
            print(item)
def print_negative(list):
    for item in list:
        if item < 0:
            print(item)
print_positive(list)
print_negative(list)
# 输出结果
1
2
3
-1
-2
-3


将函数作为参数传递

# 重复性代码解决方法
list = [1, -1, 2, -2, 3, -3]
def positive(x):
    return x > 0
def negative(x):
    return x < 0
def test(list, select_fun):
    for item in list:
        if select_fun(item):
            print(item)
test(list, positive)
test(list, negative)
# 输出结果
1
2
3
-1
-2
-3
相关文章
|
2月前
|
缓存 前端开发 JavaScript
使用 aws lambda 时,开发人员面临的常见挑战之一是管理大型 python 依赖项。
在我们快速发展的在线环境中,只需几秒钟加载的网站就能真正脱颖而出。您是否知道加载时间较快的网站的转化率比加载时间较长的网站高出三倍?
28 0
使用 aws lambda 时,开发人员面临的常见挑战之一是管理大型 python 依赖项。
|
2月前
|
存储 JSON 网络安全
使用 EFS 在 AWS Lambda 上安装 Python 依赖项
使用 aws lambda 时,开发人员面临的常见挑战之一是管理大型 python 依赖项。
40 1
|
2月前
|
Python
Python编程中正则表达式的使用
【10月更文挑战第22天】正则表达式,一种强大的文本处理工具,在Python编程中有着广泛的应用。本文将介绍如何使用Python中的re库来使用正则表达式,包括如何创建、匹配、查找和替换字符串等。通过学习本文,你将能够掌握Python中正则表达式的基本使用方法。
|
2月前
|
弹性计算 安全 数据处理
Python高手秘籍:列表推导式与Lambda函数的高效应用
列表推导式和Lambda函数是Python中强大的工具。列表推导式允许在一行代码中生成新列表,而Lambda函数则是用于简单操作的匿名函数。通过示例展示了如何使用这些工具进行数据处理和功能实现,包括生成偶数平方、展平二维列表、按长度排序单词等。这些工具在Python编程中具有高度的灵活性和实用性。
48 2
|
4月前
|
Python
Python中正则表达式(re模块)用法详解
Python中正则表达式(re模块)用法详解
82 2
|
3月前
|
程序员 Python
Python中Lambda表达式的优缺点及使用场景
Python中Lambda表达式的优缺点及使用场景
76 0
|
3月前
|
存储 算法 API
Python学习五:函数、参数(必选、可选、可变)、变量、lambda表达式、内置函数总结、案例
这篇文章是关于Python函数、参数、变量、lambda表达式、内置函数的详细总结,包含了基础知识点和相关作业练习。
51 0
|
4月前
|
Python
Python中几种lambda排序方法
【9月更文挑战第7天】在Python中,`lambda`表达式常用于配合排序函数,实现灵活的数据排序。对于基本列表,可以直接使用`sorted()`进行升序或降序排序;处理复杂对象如字典列表时,通过`lambda`指定键值进行排序;同样地,`lambda`也适用于根据元组的不同位置元素来进行排序。
243 1
深入浅出python的lambda表达式
今天我们来聊聊Python中一个常用的特性 - lambda表达式。别被这个听起来很高大上的名字吓到,其实它就是个匿名函数的实现机制。
|
5月前
|
Python
Python 中的 Lambda 函数是什么?
【8月更文挑战第29天】
72 0