Python笔记_第四篇_高阶编程_高阶函数_1.map和reduce
2024-09-26 20:17:40
1. map()函数:
原型:map(fn,lsd)
参数1是函数
参数2是序列
功能:将传入的函数一次作用在序列中的每一个元素。并把结果作为一个新的Iterator返回。其实map函数就是一个for循环查找。需要functools库。
图示:
实例1:
# 实例1:
from functools import reduce
# python内置的map函数
def chr2int(str):
return {"":,"":,"":,"":,"":,"":,"":,"":,"":,"":}[str]
# return后面哪一窜表示将单个字符转换成对应的字面量整数,按照键去取值。 list1 = ["","","",""]
res = map(chr2int,list1)
# 运行过程:[chr2int("") chr2int("") chr2int("") chr2int("")]
print(res) # 惰性列表
print(list(res)) # 显式转换成列表
# [, , , ]
实例2:将整数元素的序列,转换为字符串型。
# 实例2:
# 将整数元素的序列,转换为字符串型
# [,,,] --- ["","","",""]
l = map(str,[,,,])
print(l)
print(list(l))
# ['', '', '', '']
2. reduce()函数:
原型:reduce(fn,lsd)
参数1为函数
参数2为列表
功能:一个函数作用在序列上,这个函数必须接受两个参数,reduce把结果继续和序列的下一个元素累计计算。相当于一个递归算法。需要functools库。
举例:
reduce(f,[a,b,c,d])
f(f(a,b),c)
f(f(f(a,b),c),d)
实例1:
1 + 2
1 + 2 + 3
1 + 2 + 3
1 + 2 + 3 + 4
1 + 2 + 3 + 4 + 5
# 实例1:
# +
# + +
# + + +
# + + + +
list2 = [,,,,] def mySum(x,y):
return x + y r = reduce(mySum,list2)
print("r = ",r)
# r =
实例2:将字符串转换成对应的字面量数字。
# 实例2:
# 将字符串转成成对应字面量数字
# 比如:
# * + =
# * + =
# * + =
# * + =
def str2int(str):
def fc(x,y):
return x * + y
def fs(str):
return {"": , "": , "": , "": , "": , "": , "": , "": , "": , "": }[str]
return reduce(fc,map(fs,list(str))) print(str2int(""))
#
from functools import reduce
最新文章
- Oracle SQL性能优化
- C语言两种查找方式(分块查找,二分法)
- file_put_contents保存数据,
- 【转】Eclipse Plugin 在 Console上打印出message
- 湖大 11404 manacher
- css定义多重背景动画
- HTML5 Canvas JavaScript库 Fabric.js 使用经验
- 《Android开发艺术探索》读书笔记 (13) 第13章 综合技术、第14章 JNI和NDK编程、第15章 Android性能优化
- VB6.0快捷键大全(转)
- TimesTen更改CacheGroup管理用户ORACLE结束和TT结束password【TimesTen操作和维修基地】
- 基于Jquery的多彩二维码的生成
- iOS申请真机调试证书 -- 图文详解
- Java学习笔记--动态代理
- linux使用crontab实现PHP执行定时任务
- 【java】TreeSet、Comparable、Comparator、内部类、匿名类
- 【Qt编程】基于Qt的词典开发系列<;六>;--界面美化设计
- UE4 动画系统
- Python文件读取常用方法
- UITableViewCell 获取当前位置
- Hue中hive(hive cli)查询结果中显示列名,不带表名