温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

map filter reduce

发布时间:2020-07-17 15:20:21 来源:网络 阅读:471 作者:cooperfang 栏目:编程语言
# map # map : what why how # http://devdocs.io/python~3.6/library/functions#map 官方文档 # 返回一个迭代器,该迭代器将函数应用到可迭代的每一项,从而产生结果 # 不用for循环,就能将序列中的数据一一映射到给定的处理函数,快速对一个序列的数据进行各种操作 # 是代码更简单 
map? """Init signature: map(self, /, *args, **kwargs) Docstring: map(func, *iterables) --> map object 函数用--------------------> 返回的map对象 """ 
num = [1,3,5,7,9] # for 循环 new_num = [] for i in num: y = i + 1 new_num.append(y) print(new_num)
[2, 4, 6, 8, 10]
# map def add(x): return(x+1) map(add, num)
<map at 0x14d150489e8>
list(map(add, num))
[2, 4, 6, 8, 10]
# 字符串处理 str_list = ['lilei', 'coop', 'hanmei'] def change(s:str): return s.capitalize() list(map(change, str_list)) 
['Lilei', 'Coop', 'Hanmei']
# filter # 从可迭代的元素中构造一个迭代器,函数返回true,iterable可以是一个序列,一个支持迭代的容器 # 或者一个迭代器,如果函数为None,则假定表示函数为false,即false的所有元素都被删除 # 不用for循环,就能将序列中数据一一映射到给定的处理函数,函数中添加了真假判断,True则返回 # 相应的数据,最终得到筛选后的序列,使得代码更简单
my_list = [11,22,33,44,55,343,66,77] new_list = [] for i in my_list: if 20 < i < 60: new_list.append(i) print(new_list)
[22, 33, 44, 55]
# filter 首先是构造一个过滤田间的函数,然后才能使用filter def choose(x): if 20 < x < 50: return True def choose1(y): return 20< y < 50 filter(choose, my_list) list(filter(choose, my_list))
[22, 33, 44]
# 字符串处理 str_list = ['lilei','coop','coop2','hanmemei','china'] import re def coop(s:str): return re.search('coop', s) filter(coop, str_list) list(filter(coop, str_list))
['coop', 'coop2']
# reduce 处理数字列表的连乘, 累加 # 将两个 from functools import reduce num = [1,3,5,7,9] sum = 0 for i in num: sum += i print(sum)
25
sum = 1 for i in num: sum *= i print(sum)
945
# 定义函数 def sum(x, y): return x + y def cheng(x, y): return x * y reduce(sum, num) 
25
reduce(cheng, num)
945
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI