一、map函数

1、自定义函数,实现类似于map函数的功能

 num_l = [1,3,4,5,6,9]
def power(n):
return n ** 2
def map_test(func,array):
li0 = []
for i in array:
p = func(i)
li0.append(p)
return li0 f = map_test(power,num_l) 运用自己定义的函数来计算
print(f)
f = map_test(lambda x: x ** 2, num_l) #调用匿名函数实现简单的功能,减少代码量,以下几种类似
print(f) def add_one(n):
return n + 1 f1 = map_test(add_one,num_l)
print(f1)
f1 = map_test(lambda x: x+1, num_l)
print(f1) def reduce_one(n):
return n - 1 f2 = map_test(reduce_one,num_l)
print(f2)
f2 = map_test(lambda x: x - 1, num_l)
print(f2)
 [1, 9, 16, 25, 36, 81]
[1, 9, 16, 25, 36, 81]
[2, 4, 5, 6, 7, 10]
[2, 4, 5, 6, 7, 10]
[0, 2, 3, 4, 5, 8]
[0, 2, 3, 4, 5, 8]

2、map函数的运用:作用于成哥序列,让整个序列实现想要的转换

 ############n内置函数 map 的使用
num_l = [1,3,4,5,6,9]
f3 = map(lambda x:x + 3, num_l) # map(func, *iterables) --> map object 这是map函数官方解释
print(f3)
print(list(f3)) #注意细节:map返回只是一个object,需要用list形式打印出来 s = 'abcefg'
f4 = map(lambda st:st.upper(),s)
print(f4)
print(list(f4))
 <map object at 0x000001C6AC2B7860>
[4, 6, 7, 8, 9, 12]
<map object at 0x000001C6AC2B7898>
['A', 'B', 'C', 'E', 'F', 'G']

二、filter函数

1、自定义函数,实现类似于filter的功能

例1:铺垫

 bjper = ['bj_老王','bj_老赵','bj_老李','tian an men','gugong']
def filter_test(array):
li0 = []
li1 = []
for i in array:
if i.startswith('bj'):
li0.append(i)
if not i.startswith('bj'):
li1.append(i)
return li0,li1 f = filter_test(bjper)
print(f)
 (['bj_老王', 'bj_老赵', 'bj_老李'], ['tian an men', 'gugong'])

例2

 def show_bj(s):
return s.startswith('bj') bjper = ['bj_老王ha','bj_老赵','bj_老李','tian an menha','gugongha']
def filter_test(func,array):
li0 = []
for i in array:
if func(i):
li0.append(i)
return li0 f = filter_test(show_bj,bjper)
print(f)
# lambad 运用
f = filter_test(lambda s:s.endswith('ha'),bjper)
print(f)
 ['bj_老王ha', 'bj_老赵', 'bj_老李']
['bj_老王ha', 'tian an menha', 'gugongha']

2、filter函数运用:主要筛选出想要的元素

 ################ filter 应用:官方解释:filter(function or None, iterable) --> filter object
bjper = ['bj_老王ha','bj_老赵','bj_老李','tian an menha','gugongha']
def show_bj(s):
return s.startswith('bj')
f1 = filter(show_bj,bjper)
print(f1)
print(list(f1)) #注意细节:filter返回只是一个object,需要用list形式打印出来 f2 = filter(lambda st: not st.endswith('ha'),bjper)
print(f2)
print(list(f2))
 <filter object at 0x00000218E63A7898>
['bj_老王ha', 'bj_老赵', 'bj_老李']
<filter object at 0x00000218E63A78D0>
['bj_老赵', 'bj_老李']

三、reduce函数:

1、

例1

 num_l = [2,4,10,100]
init = 0
for i in num_l:
init += i
print(init)

结果:116

例2

 num_l = [2,4,10,100]
def sum_test(array):
init = 0
for i in array:
init += i
return init
f = sum_test(num_l)
print(f)

结果:116

例3

 num_l = [2,4,10,100]
init = 1
for i in num_l:
init *= i
print(init)

结果8000

例4

 num_l = [2,4,10,100]
def mul(array):
init = 1
for i in array:
init *= i
return init f = mul(num_l)
print(f)

结果:8000

例5

 num_l = [2,4,10,100]
def reduce_test(func,array,init=None):
init = array.pop(0)
for i in array:
init = func(init,i)
return init def product(x,y):
return x * y f = reduce_test(product,num_l,)
print(f)

结果:8000

例6

 num_l = [2,4,10,100]
def reduce_test(func,array,init=None):
if init == None:
res = array.pop(0)
else:
res = init
for i in array:
res = func(res,i)
return res def product(x,y):
return x * y f = reduce_test(product,num_l,4)
print(f)

结果:32000

例7

 ############# reduce 函数
#使用前需要导入reduce函数包
from functools import reduce num_l = [2,4,10,100]
def product(x,y):
return x * y f1 = reduce(product,num_l,5)
print(f1) f1 = reduce(lambda x,y: x + y + 1,num_l,1000)
print(f1)
 40000
1120

十一、python沉淀之路--map函数、filter函数、reduce函数、匿名函数、内置函数的更多相关文章

  1. Python成长之路第二篇(2)_列表元组内置函数用法

    列表元组内置函数用法list 元组的用法和列表相似就不一一介绍了 1)def append(self, p_object):将值添加到列表的最后 # real signature unknown; r ...

  2. python基础之递归,匿名,内置函数

    递归函数: 什么是递归函数? 函数递归调用:在调用一个函数的过程中,又直接或间接地调用了该函数本身. 递归必须要有两个明确的阶段: ①递推:一层一层递归调用下去,强调:每进入下一层问题规模减少 ②回溯 ...

  3. 函数进阶· 第3篇《常用内置函数filter()、map()、zip(),怎么用的呢?》

    坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 由于微信公众号推送改为了信息流的形式,防止走丢,请给加个星标 ,你就可以第一时间接收到本公众号的推送! ...

  4. python基础12_匿名_内置函数

    一个二分查找的示例: # 二分查找 示例 data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35, 36, ...

  5. Python全栈开发之3、深浅拷贝、变量和函数、递归、函数式编程、内置函数

    一.深浅拷贝 1.数字和字符串 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. import copy # 定义变量 数字.字符串 # n1 = 123 n1 ...

  6. Python——day14 三目运算、推导式、递归、匿名、内置函数

    一.三目(元)运算符 定义:就是 if...else...语法糖前提:简化if...else...结构,且两个分支有且只有一条语句注:三元运算符的结果不一定要与条件直接性关系​ cmd = input ...

  7. python之三元表达式与生成式与匿名与内置函数(部分)

    目录 三元表达式 各种生成式 列表生成式(可同样作用于集合) 字典生成式 匿名函数 重要内置函数 map() zip() filter() reduce() 常见内置函数(部分) 三元表达式 三元表达 ...

  8. Python函数的基本定义和调用以及内置函数

    首先我们要了解Python函数的基本定义: 函数是什么? 函数是可以实现一些特定功能的小方法或是小程序.在Python中有很多内建函数,当然随着学习的深入,你也可以学会创建对自己有用的函数.简单的理解 ...

  9. Python文件操作函数os.open、io.open、内置函数open之间的关系

    Python提供了多种文件操作方式,这里简单介绍os.open.io.open.内置函数open之间的关系: 一.内置函数open和io.open实际上是同一个函数,后者是前者的别名: 二.os.op ...

随机推荐

  1. mysql数据库导入、导出、数据传输

    Navicat数据库之间导入导出1.双击要导出的数据库,右键选转储SQL文件...,选择要保存的文件夹. 2.点击开始后,开始导出. 数据库导入1.新建数据库,数据库的名字必须和导入的数据库文件一致. ...

  2. SpringBoot2.0整合Sharding-Jdbc

    maven: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spri ...

  3. C# 实现汉字转拼音

    /// <summary> /// 生成拼音简码 /// </summary> /// <param name="unicodeString"> ...

  4. Reverse Nodes In K Group,将链表每k个元素为一组进行反转---特例Swap Nodes in Pairs,成对儿反转

    问题描述:1->2->3->4,假设k=2进行反转,得到2->1->4->3:k=3进行反转,得到3->2->1->4 算法思想:基本操作就是链表 ...

  5. 用Java编程计算出所有的"水仙花数"

    题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个 "水仙花数 ",因 ...

  6. LeetCode第[5]题(Java):Longest Palindromic Substring 标签:String、动态规划

    题目中文:求最长回文子串 题目难度:Medium 题目内容: Given a string s, find the longest palindromic substring in s. You ma ...

  7. EditText实现输入限制和校验

    EditText实现输入限制和校验 一.方法 1)输入限制 1.通过android:digits限制只能输入小写abc android:digits="abc" 2.通过andro ...

  8. poj3468线段树标记永久化

    #include<map> #include<set> #include<list> #include<cmath> #include<queue ...

  9. combobox里面显示checkbox

    看了http://www.cnblogs.com/yubinfeng/p/4463418.html这篇博客,我添加了部分代码,以便在最后获取combobox的value时可以拿到一个数组. HTML代 ...

  10. Annotation: 代码的修饰符

    Table of Contents 简介: 是什么, 用途, 为什么有用 使用: 一个简单例子,如@Override.系统提供的annotation,做成列表 定义新的annotation. 涉及到的 ...