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