惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Hackread – Cybersecurity News, Data Breaches, AI and More
W
WeLiveSecurity
C
Check Point Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Vulnerabilities – Threatpost
GbyAI
GbyAI
A
Arctic Wolf
NISL@THU
NISL@THU
N
Netflix TechBlog - Medium
The Register - Security
The Register - Security
M
MIT News - Artificial intelligence
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Microsoft Security Blog
Microsoft Security Blog
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
T
Tenable Blog
G
GRAHAM CLULEY
O
OpenAI News
S
Schneier on Security
Google Online Security Blog
Google Online Security Blog
Vercel News
Vercel News
宝玉的分享
宝玉的分享
Attack and Defense Labs
Attack and Defense Labs
T
The Blog of Author Tim Ferriss
量子位
aimingoo的专栏
aimingoo的专栏
The Cloudflare Blog
P
Privacy & Cybersecurity Law Blog
S
SegmentFault 最新的问题
MongoDB | Blog
MongoDB | Blog
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
L
LINUX DO - 热门话题
博客园_首页
F
Full Disclosure
Recent Commits to openclaw:main
Recent Commits to openclaw:main
D
Docker
U
Unit 42
A
About on SuperTechFans
博客园 - 司徒正美
Hacker News - Newest:
Hacker News - Newest: "LLM"
人人都是产品经理
人人都是产品经理
Application and Cybersecurity Blog
Application and Cybersecurity Blog
G
Google Developers Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
J
Java Code Geeks
云风的 BLOG
云风的 BLOG
Scott Helme
Scott Helme
TaoSecurity Blog
TaoSecurity Blog

博客园 - tsembrace

Pandas数据分析教程,由浅入深讲解(五)Pandas IO操作 Pandas数据分析教程,由浅入深讲解(四) Pandas数据分析教程,由浅入深讲解(三) Pandas数据分析教程,由浅入深讲解(二) Pandas数据分析教程,由浅入深讲解(一) B站黑马Python+AI零基础入门(二)AI应用-实战 B站黑马Python+AI零基础入门(一)AI应用-基础 B站清华128小时Python高级教程一(C3深入类和对象) B站清华128小时Python高级教程一(C1、C2) B站python入门学习---第二阶段第二章数据库、SQL和MySQL B站python入门学习---第二阶段第一章类和对象 B站python入门学习---第一阶段第十章 数据可视化 B站python入门学习---第一阶段第八~九章 文件操作、异常、模块与包 B站python入门学习---第一阶段前七章回顾复习(二) B站python入门学习---第一阶段前七章回顾复习(一) Python入门学习(十)第十四章其他 Python入门学习(九)Python的高级语法与用法(四)装饰器 Python入门学习(九)Python的高级语法与用法(二)闭包 Python入门学习(九)Python的高级语法与用法(一)枚举 Python入门学习(八)JSON、反序列化、序列化 Python入门学习(七)高级部分:正则表达式(二) Python入门学习(七)高级部分:正则表达式 Python入门学习(六)高级部分:面向对象 Python入门学习(五)函数 Python入门学习(四)流程控制 包与模块
Python入门学习(九)Python的高级语法与用法(三)函数式编程
tsembrace · 2025-08-14 · via 博客园 - tsembrace

一、lambda表达式

#lambda表达式
#冒号前面为参数,后面为返回值,必须为一个表达式,不能是代码块

#调用,可以赋值给一个变量
f = lambda x, y: x+y
print(f(1,2))

二、三元表达式

#三元表达式
#如果x>y,则取x,反之取y
x = 2
y = 1
r = x if x > y else y
print(r)
#三元表达式常常用于lambda表达式
f = lambda x, y: x if x > y else y
print(f(1,12))

 三、map

#map非函数,是一个类

list_x = [1,2,3,4,5,6,7,8]
#求列表各元素的对应值
def square(x):
    return x * x

#用for循环实现
list_y = []
for x in list_x:
    list_y.append(x*x)
print(list_y)

#用map实现
#第一个参数为函数,第二个参数为序列
#把序列中每个元素按函数规则一一映射
r = map(square, list_x)
print(r)   #输出一个map对象
print(list(r))  #转换为列表输出

很多情况下lambda表达式和map结合使用

#用lambda和map结合的方式实现
r = map(lambda x: x * x, list_x)
print(list(r))
#map也可以传入多个列表、元组,依次对应lambda中参数
list_x = [1, 2, 3, 4, 5, 6]
list_y = (1, 3, 5, 7, 9, 11)
r = map(lambda x, y: x * 2 + y, list_x, list_y)
print(list(r))

四、reduce

from functools import reduce

#reduce是一个函数,其内的lambda函数必须是两个参数
#reduce连续调用函数,第一次执行函数会先取序列前两个元素运算后作为第二次执行函数的x参数,y参数顺序取序列中第三个元素,按此类推
#即((((1+2)+3)+4)+5)+6
list_x = [1, 2, 3, 4, 5, 6]
r = reduce(lambda x,y:x+y, list_x)
print(r)
#一个旅行者,一开始位于(0,0)位置,经过如下x中元素的移动
#求最终位置坐标
x = [(1,3), (2, -2), (-2, 3)]
final_pos = reduce(lambda x, y :(x[0]+y[0], x[1]+y[1]), x)
print(final_pos)

 五、filter

#filter通过设置真伪判断可以过滤掉相关元素

list_x = [1, 0, 1, 0, 0, 1]
#剔除掉值为0的元素
#依据filter第一个参数的真假来判断当前元素是否保留
r = filter(lambda x: True if x==1 else False, list_x)
print(r)
print(list(r))
#本例中也可以简化直接如下
r = filter(lambda x:x,list_x)
print(list(r))

list_y = [1, 2, 3, 4, 5, 6, 7, 8, 9]
#剔除偶数
r = filter(lambda x:1 if x%2==1 else 0, list_y)
print(list(r))

list_z = ['a', 'B', "c", "D", "E", "f"]
#剔除小写字母
r = filter(lambda x:True if x < 'a' else False,list_z)
print(list(r))