IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python基础(五)——匿名函数 -> 正文阅读

[Python知识库]Python基础(五)——匿名函数

一.什么是匿名函数

顾名思义,没有名字。适用于简单的业务逻辑

二.匿名函数的声明

使用lambda声明

变量 = lambda 参数 : 逻辑代码

#调用
变量(参数)

三.三目运算

表达式1 if 条件 else 表达式2

如果条件成立,表达式1就作为整个表达式的结果,反之,表达式二为整个表达式的结果。

四.匿名函数使用方式

4.1 lanbda与三目运算的结合使用

compare = lanbda x,y :x if x>y else y

#调用
compare(8,9)

4.2 给def函数中的lambda传参

def 函数无参数

def main():
	return lambda x : True if x==10 else False

#传参
main()(10)

def 有参数

def main(num1,num2,num3):
	return lambda x : x+num1+num2+num3
#调用
total = main(10,20,30)(40)

4.3 匿名函数传入def函数

str_list = ['Python基础', 'Java基础', 'Python爬虫', 'Java Web', ]

def main(keys, func):
    result_list = []
    for result in keys:
        if func(result):
            result_list.append(result)
    return result_list

condition = lambda x: True if 'Python' in x else False
# 调用
print(main(str_list, condition))

五.与匿名函数结合的常用函数

5.1 map(function,sequence)

data = [1,2,3,4]
#def函数 +map
def func(n):
    return n+1  
print(list(map(func,data)))
#lambda + map
print(list(map(lambda n : n+1,data)))

  • 参数顺序:方法/表达式,可迭代对象
  • 对可迭代对象中每个数据进行函数规定的操作
  • 返回的结果是迭代器,用list转一下在调用
  • 函数为传统函数调用时不要加()

5.2reduce(function,sequence)

引入:from functools import reduce

from functools import reduce

data = [1, 2, 3, 4]
def func(x, y):
    return x + y
print(reduce(func,data))
print(reduce(lambda x, y: x + y, data))
  • 参数顺序:方法/表达式,可迭代对象
  • 每次取两个数进行运算,可迭代对象中数据越来越少

5.3sorted(iterable,key=None,reverse=False)

data = {'李彤':480, '苏丹':520,'王梅':340, '赵夏伟':555 }

print(sorted(data.items(), key=lambda d: d[1], reverse=True))
  • 对可迭代对象进行排序,不影响原数据
  • 返回的排序是列表嵌套元组,可用dict()转回字典
  • iterable:可迭代数据类型列表,字典
  • key:是否基于某一个元素排序
  • reverse:是否反转,默认false升序,反之降序
  • 如果基于的条件不是一个,key=lambda d: (d[0],d[1])

5.4filter(function,sequence)

data = [1, 2, 3, 4]
print(list(filter(lambda x : x>2,data)))
  • 参数顺序:方法/表达式,可迭代对象
  • 根据条件过滤
  • 函数返回类型需要为布尔
  • filter返回的结果为迭代器,转list调用
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-11 16:36:07  更:2021-07-11 16:36:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 18:33:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码