Python基础(reduce,filter,map函数)
map函数:
map函数特点:对可迭代对象中的每个元素进行相同的操作(例如每个元素+1等等)
#————————————————map函数————————————————————
#对列表的各个元素实现加一功能
li=[1,2,3]
#定义一个加一函数
def func1(x):
return x+1 #第一种map函数使用方式---lambda
res1=map(lambda x:x+1,li)
print(list(res1)) #第二种map函数使用方式---普通函数
res2=map(func1,li)
print(list(res2))
map函数两种实现方式
map扩展(将列表中的数字全部变成字符串):
print(list(map(str,[1,2,3,4,5,6])))
reduce函数:
reduce函数特点:从左到右对一个序列的项累计地应用有两个参数的函数,以此合并序列到一个单一值。(例如累加或累乘列表元素等等)
#————————————————reduce函数————————————————————
#python3在使用reduce函数时需要导入模块
from functools import reduce
nums=[1,2,3,4] #实现乘法的普通函数
def func2(x,y):
return x*y #第一种使用reduce函数的方式---lambda
res3=reduce(lambda x,y:x*y,nums)
print(res3) #第二种使用reduce函数的方式---普通函数
res4=reduce(func2,nums)
print(res4)
reduce函数
filter函数:
filter函数特点:对可迭代对象中的元素按照特定的条件进行筛选。(例如筛选列表中所有的偶数等等)
#————————————————filter函数————————————————————
lis=[0,1,2,3,4,5,6] #定义筛选偶数的普通函数一
def func3(x):
if x%2==0:
return x #定义筛选偶数的普通函数二
def func4(x):
return x%2==0 #第一种使用filter函数的方式---lambda
res5=filter(lambda x:x%2==0,lis)
print(list(res5)) #在使用两个普通函数时使用时会有一些差异,第一种return 0被当做返回False,因此列表中没有获取到0这个元素,第二种则不会有这种情况。 #第二种使用filter函数的方式---普通函数一
res6=filter(func3,lis)
print(list(res6)) #第二种使用filter函数的方式---普通函数二
res7=filter(func4,lis)
print(list(res7))
filter函数
*filter的底层实现原理:
def foo(x):
return x>5 def filter(func,iter):
lst=[]
for i in iter:
if func(i):
lst.append(i)
return lst ret=filter(foo,[1,2,3,4,5,6,7,8,9])
print(ret)
Python基础(reduce,filter,map函数)的更多相关文章
- python中reduce filter map lambda函数
lambda函数 python 使用 lambda 来创建匿名函数,lambda返回值是一个函数的地址,也就是函数对象. 语法:lambda [arg1 [,arg2,.....argn]]:expr ...
- 十五. Python基础(15)--内置函数-1
十五. Python基础(15)--内置函数-1 1 ● eval(), exec(), compile() 执行字符串数据类型的python代码 检测#import os 'import' in c ...
- 十六. Python基础(16)--内置函数-2
十六. Python基础(16)--内置函数-2 1 ● 内置函数format() Convert a value to a "formatted" representation. ...
- python用reduce和map把字符串转为数字的方法
python用reduce和map把字符串转为数字的方法 最近在复习高阶函数的时候,有一道题想了半天解不出来.于是上午搜索资料,看了下别人的解法,发现学习编程,思维真的很重要.下面这篇文章就来给大家介 ...
- Python基础灬高阶函数(lambda,filter,map,reduce,zip)
高阶函数 lambda函数 关键字lambda表示匿名函数,当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. lambda函数省略函数名,冒号前为参数,冒号后函数体. # ...
- python的reduce,map,zip,filter和sorted函数
一. reduce(function,Iterable),它的形式和map()函数一样.不过参数function必须有两个参数. reduce()函数作用是:把结果继续和序列的下一个元素做累积计 ...
- python中lambda,map,reduce,filter,zip函数
函数式编程 函数式编程(Functional Programming)或者函数程序设计,又称泛函编程,是一种编程范型,它将计算机运算视为数学上的函数计算,并且避免使用程序状态以及易变对象.简单来讲,函 ...
- Python map/reduce/filter/sorted函数以及匿名函数
1. map() 函数的功能: map(f, [x1,x2,x3]) = [f(x1), f(x2), f(x3)] def f(x): return x*x a = map(f, [1, 2, 3, ...
- 十一、python沉淀之路--map函数、filter函数、reduce函数、匿名函数、内置函数
一.map函数 1.自定义函数,实现类似于map函数的功能 num_l = [1,3,4,5,6,9] def power(n): return n ** 2 def map_test(func,ar ...
- python3 匿名函数,map/reduce/filter等函数结合应用
匿名函数就是不需要显式的指定函数 # 平方函数 def func1(x): return x**2 print(func1) # 平方函数匿名函数写法 func2=lambda x:x**2 prin ...
随机推荐
- input 去掉点击后出现的边框
添加属性 :focus{outline:none} 就可以去掉默认点击时,边框会出现的蓝色边框. :focus 选择器用于选取获得焦点的元素.提示:接收键盘事件或其他用户输入的元素都允许 :focus ...
- fixed元素随滚动条无抖动滚动
页面上用fixed定位一个元素,随滚动条滚动位置不变,最开始我只用了css给元素身上写上fixed属性,发现滚动时元素会发生抖动,随后我就在网上找到解决办法,封装了个方法,如下: Css部分 此部分是 ...
- FTP连接池
我们项目使用的是 Apache的(commons-net-3.2.jar) FTPClient,但是系统偶尔会有异常,趁着刚解决完,总结一下. 日志中提示是类似 java.lang.Exception ...
- SDOI2017 BZOJ 4820 硬币游戏 解题报告
写在前面 此题网上存在大量题解,但本人太菜了,看了不下10篇均未看懂,只好自己冷静分析了.本文将严格详细地论述算法(避免一切意会和玄学),因此可能会比其它题解更加理论化一些,希望能对像我一样看了其它题 ...
- bzoj5249 [2018多省省队联测]IIIDX
转化一下问题变成给定一棵树,一个序列,求父亲的权值小于子树的最大方案. 直接贪心会在有重复权值时出现错误,我们考虑用线段树优化贪心. 将序列从小到大排序,线段树上每个点记录他和他右边当前还可用的权值, ...
- POJ_2653_Pick-up sticks_判断线段相交
POJ_2653_Pick-up sticks_判断线段相交 Description Stan has n sticks of various length. He throws them one a ...
- BZOJ_1029_ [JSOI2007]建筑抢修_贪心+堆
BZOJ_1029_ [JSOI2007]建筑抢修_贪心+堆 Description 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是 ...
- Centos打开、关闭、结束tomcat,及查看tomcat运行日志
cd到tomcat目录下之后 启动:一般是执行sh bin/startup.sh 停止:一般是执行sh bin/shutdown.sh查看:执行ps -ef |grep tomcat 输出如下 *** ...
- 【爆料】-《西悉尼大学毕业证书》UWS一模一样原件
☞西悉尼大学毕业证书[微/Q:865121257◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归&a ...
- SQL数据库的一些操作
--以 MySQL为例 //登陆 mysql -u root -p //创建一个名为test_lib的数据库 CREATE DATABASE test_lib //删除一个名为test_lib的数据库 ...