##python高阶函数##

本文介绍了Python中函数的应用技巧,包括高阶函数、map、reduce、filter和sorted等函数的使用方法及示例,还展示了如何利用lambda表达式简化代码。

1.高阶函数
-实参是一个函数名
-函数的返回值是一个函数

print(abs(-11))

#函数本身也可以赋值给变量 变量可以指向函数
f = abs
print(f(-10))

def fun(x,y,f):
return f(x),f(y)

print(fun(-10,34,abs))

2.map函数
“”"
map()函数 接收两个参数 一个是函数 一个是序列
map将传入的函数依次作用到序列的每个元素 并且把结果作为新的序列返回
“”"
#对于序列[-1,3,-4,-5]的每个元素求绝对值
import random

#print(list(map(abs,[-1,3,-4,-5])))

#对于序列的每个元素求阶乘
def factoria(x):
“”“对x求阶乘”""
res = 1
for i in range(1,x+1):
res = res * i
return res

li = [random.randint(2,7) for i in range(10)]
print(list(map(factoria,li)))

3.reduce函数
“”"
reduce():把一个函数作用在一个序列上 这个函数必须接收两个参数
,reduce把结果继续和序列的下一个元素做累积计算
reduce(f,[x1,x2,x3,x4,x5] = f(f(f(x1,x2),x3),x4)

python2.x:reduce是内置函数
python3.x:from functools import reduce
“”"
from functools import reduce

def multi(x,y):
return x*y
print(reduce(multi,range(1,4)))

def add(x,y):
return x+y
print(reduce(add,[1,2,3,4,5]))

4.filter函数
“”"
filter过滤函数
和map()类似,也接收一个函数和一个序列
但是和map()不同的是,filter()把传入的函数依次作用于
每个元,然后根据返回值是True还是False决定保留还是丢弃该元素
“”"
def isodd(num):
if num % 2==0:
return True
else:
return False
print(list(filter(isodd,range(100))))

5.sorted函数
#li = [1,2,3,4]
#a = li.sort(reverse=True)
#print(a)
#"""
#默认sort和sorted方法由小到大进行排序,reverse=True由大到小进行排序
#"""
#b = sorted(li,reverse=True)
#print(b)
info = [
# 商品名称 商品数量 商品价格
(‘apple1’,200,32),
(‘apple3’, 40, 12),
(‘apple2’, 40, 2),
(‘apple4’,1000,23),
(‘apple5’, 40, 5)
]
print(sorted(info))
#按照商品数量进行排序
def sorted_by_count(x):
return x[1]
#按照商品价格进行排序
def sorted_by_price(x):
return x[2]
#先按照商品数量由小到大进行排序,如果商品的数量一样
#则按照商品价格由小到大进行排序
def sorted_by_count_price(x):
return x[1],x[2]
print(sorted(info,key=sorted_by_count))
print(sorted(info,key=sorted_by_price))
print(sorted(info,key=sorted_by_count_price))

6.匿名函数
“”"
匿名函数的关键字为lambda
冒号前面的是形参 冒号后面的是返回值
“”"
from functools import reduce

#lambda x, y: x + y
#def add(x,y):

return x +y

print(reduce(lambda x, y: x + y,[1, 2, 3, 4, 5]))

#def mypow(x):
return x**2

print(list(map(lambda x:x**2,range(5))))

#def is_ood(num):
return num %2==0

print(list(filter(lambda x:x%2==0,range(100))))

基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样与统计,通过模拟系统元件的故障与修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构与设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码与案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行与可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理与实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估与优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值