首页 技术 正文
技术 2022年11月9日
0 收藏 697 点赞 5,114 浏览 1877 个字
array=[1,3,4,71,2]ret=[]
for i in array:
ret.append(i**2)
print(ret)#如果我们有一万个列表,那么你只能把上面的逻辑定义成函数
def map_test(array):
ret=[]
for i in array:
ret.append(i**2)
return retprint(map_test(array))#如果我们的需求变了,不是把列表中每个元素都平方,还有加1,减一,那么可以这样
def add_num(x):
return x+1
def map_test(func,array):
ret=[]
for i in array:
ret.append(func(i))
return retprint(map_test(add_num,array))
#可以使用匿名函数
print(map_test(lambda x:x-1,array))#上面就是map函数的功能,map得到的结果是可迭代对象
print(map(lambda x:x-1,range(5)))map函数
from functools import reduce
#合并,得一个合并的结果
array_test=[1,2,3,4,5,6,7]
array=range(100)#报错啊,res没有指定初始值
def reduce_test(func,array):
l=list(array)
for i in l:
res=func(res,i)
return res# print(reduce_test(lambda x,y:x+y,array))#可以从列表左边弹出第一个值
def reduce_test(func,array):
l=list(array)
res=l.pop(0)
for i in l:
res=func(res,i)
return resprint(reduce_test(lambda x,y:x+y,array))#我们应该支持用户自己传入初始值
def reduce_test(func,array,init=None):
l=list(array)
if init is None:
res=l.pop(0)
else:
res=init
for i in l:
res=func(res,i)
return resprint(reduce_test(lambda x,y:x+y,array))
print(reduce_test(lambda x,y:x+y,array,50))reduce函数
#电影院聚集了一群看电影bb的傻逼,让我们找出他们
movie_people=['alex','wupeiqi','yuanhao','sb_alex','sb_wupeiqi','sb_yuanhao']def tell_sb(x):
return x.startswith('sb')def filter_test(func,array):
ret=[]
for i in array:
if func(i):
ret.append(i)
return retprint(filter_test(tell_sb,movie_people))#函数filter,返回可迭代对象
print(filter(lambda x:x.startswith('sb'),movie_people))filter函数
map()#处理序列中的每一个元素,得到的结果是一个列表,该列表元素个数及位数与原来一致filter()#遍历序列中的每一个元素,判断每个元素得到布尔值,如果是True则留下来
portfolio = [
{'name': 'IBM', 'shares': 100, 'price': 91.1},
{'name': 'AAPL', 'shares': 50, 'price': 543.22},
{'name': 'FB', 'shares': 200, 'price': 21.09},
{'name': 'HPQ', 'shares': 35, 'price': 31.75},
{'name': 'YHOO', 'shares': 45, 'price': 16.35},
{'name': 'ACME', 'shares': 75, 'price': 115.65}
]list(filter(lambda p:p['price']>30,portfolio))reduce()
#处理一个序列,然后把序列合并操作
from functools import reduce
print(reduce(lambda x,y:x+y,range(200),100))
print(reduce(lambda x,y:x+y,range(1,200)))
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,495
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,909
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,741
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,496
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,134
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,298