python基础知识--10Lambda匿名函数、三元表达式及map、reduce、filter
2021-03-23 01:24
标签:strong 循环 lower als 定义 扩展 sequence apple 必须 1.Lambda匿名函数 # 匿名函数,没有定义函数的名称,可以实现函数某些简单功能 # 需求 #%% def add(x,y): # param_list,参数列表 #%% f = lambda x,y:x+y f(3,4) 运行结果:7 f = lambda x,y:x+y # 需求: #%% def f(x,y): f = lambda x,y: x+y if x>=y else x-y # 三元表达式 高阶函数 f(5,4) 2.三元表达式 #%% f = lambda x,y: x+y if x>=y else x-y #%% f(5,4) # 需求 # 三元表达式格式 #%% f = lambda x: x if x.islower() else x.upper() f(‘Hello‘) # 需求: b = [] for i in a: map(func, *iterables) # func 代表可接收一个函数 #%% a = [1,2,3,4,5] # 需求: def f(x): b = map(f,a) list(b) list(b) # 将两个列表元素相加之后结果,存放在一个新列表c中 #%% a = [1,2,3,4,5] b = [1,2] c = map(lambda x,y:x+y,a,b) list(c) 4.Reduce # 需求 #%% num = 1 for i in a: num from functools import reduce reduce(function, sequence[, initial]) #%% # function 接收一个函数 #%% # 连续计算 #%% a = [1,2,3,4,5] num = reduce(lambda x,y:x*y,a,1000) # 1000 * 1 * 2 * 3 * 4 *5 num b = [‘a‘,‘b‘,‘c‘] r = reduce(lambda x,y:x+y,b,‘???‘) # ???abc r #%% # 将a列表中非0的元素,保存到b列表中 #%% b = [] for i in a: #%% b filter(function, iterable) # function 接收一个函数 # 适用场景 # 需求: #%% a = [0,1,2,3,4,5] def f(x): b = filter(f,a) c = filter(lambda x:True if x!=0 else False,a) c #%% # filter 返回结果必须是 True 或者 False #%% bool(1) bool(0) c = filter(lambda x:x,a) list(c) [1, 2, 3, 4, 5] 6.列表推导式 #%% a = [] #%% a variable = [i for i in input_list if 条件判断] # variable 列表名,可自定义 # 如何快速生成一个 0-9 列表 #%% a = [i for i in range(10) if i>3] a #%% a = [1,2,3,4,5] # map lambda b = map(lambda x:x**3,a) list(b) c 运行结果: #%% d = {‘lemon‘:5,"apple":3,"pear":4} c = [i for i in d.keys()] c [‘lemon‘, ‘apple‘, ‘pear‘] e python基础知识--10Lambda匿名函数、三元表达式及map、reduce、filter 标签:strong 循环 lower als 定义 扩展 sequence apple 必须 原文地址:https://www.cnblogs.com/tester007/p/13866748.html
# 匿名函数
# 传入 x,y
# 返回 x + y 的值
a = x + y
return a
lambda param_list:expression
# expression,建议书写一些简单的表达式,没法完整实现复杂代码块内容
# 传入两个参数x,y,如果 x>=y 返回 x+y。
# 如果x
if x>=y:
return x+y
return x-y
运行结果:9
# 三元表达式格式
# 条件为真的结果 if 条件判断 else 条件为假的结果
运行结果:9
# 输入一个单词
# 如果是小写单词,则返回小写单词,否则都返回大写单词
#%%
# 条件为真的结果 if 条件判断 else 条件为假的结果
运行结果:‘HELLO‘
3.MAP
a = [1,2,3,4,5]
# 生成一个列表b,列表b内的元素为a列表每个元素的三次方
b.append(i ** 3)
b
运行结果:[1, 8, 27, 64, 125]
#%%
# iterables 代表可接收一个或多个可迭代的序列
# 生成一个列表,列表内的元素为a列表每个元素的三次方
return x ** 3
运行结果:[1, 8, 27, 64, 125]
b = map(lambda x:x**3,a)
运行结果:[1, 8, 27, 64, 125]
#%%a = [1,2,3,4,5]
# 计算a列表各元素相乘之后的值
num *= i
运行结果:120
#%%
# sequence 接收一个可迭代序列
# initial 初始运算的值
# 计算a列表各元素相乘之后的值
运行结果:120000
#%%
运行结果:‘???abc‘
5.Filter
a = [0,1,2,3,4,5]
if i !=0:
b.append(i)[1, 2, 3, 4, 5]
# 用于元素过滤
# iterable 接收一个可迭代序列
# 用于序列元素过滤
# 将a列表中非0的元素,保存到b列表中
if x !=0:
return x
list(b)[1, 2, 3, 4, 5]
#%%
list(c)
[1, 2, 3, 4, 5]True
#%%False
#%%# 如何快速生成一个 0-9 列表
for i in range(10):
a.append(i)
运行结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 基本格式
# i 循环变量名
# input_list 可迭代序列
# if 条件判断,如果不写的话,默认所有条件都成立
运行结果:[4, 5, 6, 7, 8, 9]
# 需求
# 生成一个列表,列表内的元素为a列表每个元素的三次方
运行结果:[1, 8, 27, 64, 125]
c = [i**3 for i in a]
[1, 8, 27, 64, 125]
# 需求
# 将字典里面的键,保存到一个列表c中
# 扩展
# 将字典里的键与值,进行替换
e = {value:key for key,value in d.items()}
运行结果:{5: ‘lemon‘, 3: ‘apple‘, 4: ‘pear‘}
上一篇:springboot添加拦截器
下一篇:python基础知识--6函数
文章标题:python基础知识--10Lambda匿名函数、三元表达式及map、reduce、filter
文章链接:http://soscw.com/index.php/essay/67718.html