以下为学习笔记:来自廖雪峰的官方网站

1.高阶函数:简单来说是一个函数里面嵌入另一个函数

2.python内建的了map()和reduce()函数

map()函数接收两参数,一个是函数,一个是Iterable.    map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterable返回

例子:

#map函数
def f(x):
return x * x
r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9]) #map函数返回一个函数和一个Iterable
print r
#将数字作为字符串输出

print(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))

reduce()函数:把一个函数作用在一个序列【x1,x2,x3,...】上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累计计算,其效果就是
reduce(f,[x1,x2,x3,x4])=f(f(f(x1,x2),x3),x4) 3.练习题1:将名字规范化
def normalize(name):   #规范名字的写法
name = name[0].upper() + (name[1:]).lower()
return name r = map(normalize, ['LISA', 'adam', 'BaRt'])
print r
练习题2:#python提供sum()函数可以接受一个list并求和,请编写一个prod()函数,可以接受一个list,并求和
from functools import reduce l = [3, 5, 7, 9]
def prod(a, b):
return a * b print(reduce(prod, l))
练习题3.#利用map和reduce编写一个str2float函数,把字符串‘123.456’变成123.456
from functools import reduce def char2num(s):
return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s] def str2float(s):
s = s.split('.')
if len(s[0]) == 0:
s[0] = '0'
return (reduce(lambda x, y: x * 10 + y, map(char2num, s[0]))) + \
(reduce(lambda x, y: x * 10 + y, map(char2num, s[1]))) * pow(0.1, len(s[1])) print(str2float('123.456'))

最新文章

  1. Python 之路 Day5 - 常用模块学习
  2. 【原】CSS3 Media在常用设备的设置值
  3. Hibernate get和load区别
  4. SPOJ SUBST1 后缀数组
  5. MFC学习笔记(一)向模态对话框传递数据
  6. ios中的category与extension
  7. 最新php环境搭建
  8. Change An Item Property Using Set_Item_Property In Oracle Forms
  9. hdu 2473 Junk-Mail Filter (并查集之点的删除)
  10. android获取根视图
  11. 使用vs2010编译 Python \ SIP \ PyQt4
  12. [转] Form表单中method="post/get'的区别
  13. js中调用mangeto的js翻译
  14. html块级元素和内联元素区别详解
  15. Material Design之CardView的使用
  16. 让App中加入LruCache缓存,轻松解决图片过多造成的OOM
  17. codeblocks更改颜色主题
  18. SQL Server2016安装
  19. 泛在电力物联网建设大纲ppt
  20. 深度学习课程笔记(十八)Deep Reinforcement Learning - Part 1 (17/11/27) Lectured by Yun-Nung Chen @ NTU CSIE

热门文章

  1. 前端面试题(js部分)
  2. 【心无旁骛】vue-ts-daily
  3. java虚拟机(十三)--GC调优思路
  4. csp-s模拟48,49 Tourist Attractions,养花,画作题解
  5. jeeCMS首页加载流程
  6. IDEA快速定位错误快捷键
  7. Linux下ps -ef和ps aux的区别及格式详解-转
  8. jmeter参数化之用户自定义变量
  9. Vuejs实战项目三:退出系统功能实现
  10. 入门servlet:request获取请求参数通用方式